java.util.Set
特点
元素唯一,list元素可重复
常用实现类
TreeSet
特点:排序,唯一.不允许添加null值
HashSet
特点:无序,唯一,允许null值
LinkedHashSet
特点:有序,唯一,允许null值
java.util.TreeSet
底层数据结构是红黑树
构造方法
public TreeSet() 空参构造方法 集合中的元素必须实现Comparable接口
public TreeSet(Comparator c) 带参构造方法传入比较器对象 注意:如果传入了比较器,则不使用自然排序,而是使用比较器指定的规则来排序,此时,集合中的元素是否实现自然排序接口,无所谓了.
TreeSet保证元素唯一的方式
如果使用的是自然排序接口,就看 compareTo方法 返回的结果是不是0,如果是0,说明两个元素相同,不添加到集合.
如果使用的是比较器 就看compare 返回的结果是不是0 如果是0 说明对象相同 不添加到集合.
java.util.HashSet
底层数据结构是JDK1.7哈希表
JDK1.8哈希表+红黑树
TreeSet保证元素唯一的方式
先比较对象的hashCode
不同 说明元素不同,添加到集合
相同 不能说明这两个元素一定相同,需要继续比较equals
相同 不添加
不同 添加到集合
java.util.LinkedHashSet
链表+哈希表
链表保证元素有序,哈希表保证元素唯一
hashCode和equal方法
本文详细介绍了Java中Set接口的三种常见实现:TreeSet(排序且唯一),HashSet(无序且唯一)和LinkedHashSet(有序且唯一)。讨论了它们的底层数据结构、构造方法以及保证元素唯一性的机制。

被折叠的 条评论
为什么被折叠?



