22_Set集合 HashSet集合 LInkHathSet集合

Set集合: 单列数据结构。

  特点:

    1.不允许存储重复的元素
    2.最多包含一个null元素
    3.通常认为Set接口元素是无序的。
    4.通常认为Set接口无索引。
  Set接口的子类:java.util.HashSet和 Java.util.LinkedHashSet

HashSet集合:

    它存储的元素是不允许重复,并且元素是无序的(存取顺序不一致,意思是不是按照存放顺序显示的)
    HashSet的底层实现需要有java.util.HashMap支持。
    它的元素是根据对象的哈希值来确定在集合中元素的存储位置,因此存取和查找性能较好,
    保证元素唯一依赖于重写的hashCode 和equals方法
    在JDK1.8之前 哈希表数据底层采用数组+链表结构存储数据
    在JDK1.8之后 哈希表存储采用数组+链表+红黑树实现,
    当链表长度超过阈值(8),将链表转换成红黑树存储。

//创建Set集合
        Set<String> set= new HashSet<String>();
            //添加元素
        set.add("小明");
        set.add("小王");
        set.add("小刘");
        set.add("小周");
        set.add("小王");
        //通过迭代器来获取
        Iterator<String> iterator = set.iterator();
        while (iterator.hasNext()){
            //next方法
            String str = iterator.next();
            System.out.println(str);//小刘、小周、小明、小王(无序排列,不可重复会有提示)



LinkHashSet集合:

  元素不重复,并且是有序的。
  我们常说的链表结构:单项链表和双向链表

原文地址:https://www.cnblogs.com/rxqq/p/13940334.html