HashSet 方法使用总结


HashSet类,是存在于java.util包中的类 。同时也被称为集合,该容器中只能存储不重复的对象。底层是由HashMap来存储的,因为HashSet不能重复,你知道HashMap的键不能重复就明白了这一个原理了,所以对于HashMap很熟悉的话对于HashSet就能够很快的知道底层实现。

    HashSet是set接口的实现类,也是我们最常用的set集合

    储存的是无序,唯一的对象。遍历可能是有序,可能是无序的

    由于是无序的所以每组数据都没有索引,很多list可用的方法他都没有

    凡是需要通过索引来进行操作的方法都没有,所以也不能使用普通for循环来进行遍历,只有加强型for和迭代器两种遍历方法

    HashSet的元素不能重复

    HashSet中允许有NULL值

 

例如:

get(i);

set(int index,Object o);

remove(int index);

等需要用索引来操作的方法都没有;

 

HashSet的各种方法:

1.增加

add(null);

2.删除

remove(news);

3.对比查找

contains(news);

4.清空集合

clear();

5.获取长度

size();

 

HashSet遍历

迭代遍历

    Set<String> set = new HashSet<String>();
    Iterator<String> it = set.iterator();
    while (it.hasNext()) {
      String str = it.next();
      System.out.println(str);
    }

 for循环遍历

    for (String str : set) {
          System.out.println(str);
    }

使用示例:

    public class NewsHashSet {
    public static void main(String[] args) {
        News news = new News(1, "北京终于放晴了!", "新闻社");
        News news2 = new News(2, "香港回归纪念日", "人民新闻");
        News news3 = new News(3, "假奶粉事件曝光", "人民新闻网");
        
        //创建HashSet集合,储存无序,唯一的数据
        //HashSet是是使用equals来进行对象对比,确定数据是唯一的
        //如果两个数据的对象是一致的,那么HashSet将会把这两个合并,只储存一个空间
        HashSet<News> set = new HashSet<News>();
        set.add(news);
        set.add(news2);
        set.add(news3);
        
        //由于HashSet储存数据都是无序的,所以不能用get(i);来获取具体对象
        //所以我们必须通过遍历来得到HashSet的各个数据,由于是没有索引的
        //所以不能使用普通类型的for来遍历它
        //HashSet只能通过增强型for和迭代器来遍历它
        
        //增强型for
        for(News n : set){
            System.out.println(n.getID()+"\t"+n.getLitter()+"\t"+n.getAuthor());
        }
        System.out.println("*****************************************");
        //迭代器
        Iterator<News> it = set.iterator();
        while (it.hasNext()) {
            News n = it.next();
            System.out.println(n.getID()+"\t"+n.getLitter()+"\t"+n.getAuthor());
        }
        
        //set的各种方法
        //set增加
        set.add(null);
        
        //删除
        set.remove(news);
        
        //对比查找
        set.contains(news);
        
        //清空集合
        set.clear();
        
        //获取长度
        set.size();
        
        }
    }
---------------------
作者:Linias
来源:CSDN
原文:https://blog.csdn.net/qq_29373285/article/details/84940885
版权声明:本文为博主原创文章,转载请附上博文链接!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM