Java中遍历Set集合的三种方法

作者: 您好简书 | 来源:发表于2019-03-18 23:38 被阅读52次

    Map集合:链接: Map集合的五种遍历方式及Treemap方法
    Set集合:链接: Java中遍历Set集合的三种方法
    TreeSet集合:链接: Java深入了解TreeSet,和迭代器遍历方法
    LIst集合:链接: Java中List集合的三种遍历方式(全网最详)
    集合区别:链接: java中list,set,map集合的区别,及面试要点

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

    2.for循环遍历:
    for (String str : set) {
    System.out.println(str);
    }

    优点还体现在泛型 假如 set中存放的是Object

    Set<Object> set = new HashSet<Object>();
    for循环遍历:
    for (Object obj: set) {
    if(obj instanceof Integer){
    int aa= (Integer)obj;
    }else if(obj instanceof String){
    String aa = (String)obj
    }
    ........

    }

    1 Set集合介绍
    Collection接口可以存放重复元素,也可以存放不重复元素。List可以存放重复元素,Set就是不重复的元素。
    通过元素的equals方法,来判断是否为重复元素。
    Set集合取出元素的方式可以采用:迭代器,增强 for

    2 HashSet(哈希表)
    此类实现了Set接口,由哈希表(实际是HashMap实例)支持。它不保证set的迭代顺序,特别是它不保证该顺序恒久不变。此类允许使用null元素。

    特点:无序集合,存储和取出的顺序不同,没有索引,不存储重复元素。代码的编写和ArrayList完全一致。
    HashSet特点:
    底层数据结构:哈希表(链表和数组的结合体);
    存储取出都比较快;
    线程不安全,运行速度快;
    3 对象的哈希值
    如果没有重写父类,每次运行的结果都是不同的整数;
    如果子类重写父类的方法,哈希值,自定义;
    存储到HashSet的依据;
    4 字符串的哈希值
    String类继承Object,重写了父类的方法hashCode,

    5 哈希表的存储过程

    public static void main(String[] args) {
            HashSet<String> set=new HashSet<String>();
            set.add(new String("abc"));
            set.add(new String("abc"));
            set.add(new String("abc"));
            set.add(new String("bbc"));
            set.add(new String("bbc"));
            System.out.println(set);
    
        }
    

    相关文章

      网友评论

        本文标题:Java中遍历Set集合的三种方法

        本文链接:https://www.haomeiwen.com/subject/uttwmqtx.html