Set的特点
无序,存取顺序不一致(存储顺序和添加顺序不一致)
不重复,可以去重复
无索引,没有带索引的方法,不能用普通的for循环遍历,也不能通过索引获取元素
Set集合的实现类特点
HashASet:无序、不重复、无索引
LinkedHashSet:有序,不重复,无索引(HashSet的子类)
TreeSet:排序、不重复、无索引
HashSet的底层原理
HashSet实现原理
HashSet去重复原理解析
刚刚创建的对象a和对象b相同,但是此时a和b只是内容相同他们的哈希地址却不相同,因此想判定他们的哈希值相同要重写hashCode()方法
LinkedHashSet集合概述和实现原理
有序,不重复,无索引
这里的有序指的是保证存储和取出的元素顺序一致
原理:底层数据结构是依然哈希表,只是每个元素有额外的多了一个双链表的机制记录存储的顺序
TreeSet集合概述和特点
不重复,无序,有序
有序:按照元素的大小默认升序排序
TreeSet集合底层是基于红黑树的数据结构实现排序的,增删改查性能都较好
TreeSet集合是一定要排序的,可以将元素按照指定的规则进行排序