Set接口概述
一个不包含重复元素的 collection
Set案例
存储字符串并遍历
存储自定义对象并遍历
HashSet类概述
不保证 set 的迭代顺序
特别是它不保证该顺序恒久不变
HashSet如何保证元素唯一性
底层数据结构是哈希表(元素是链表的数组)
哈希表依赖于哈希值存储
添加功能底层依赖两个方法:
int hashCode()
boolean equals(Object obj)
LinkedHashSet类概述
元素有序唯一
由链表保证元素有序
由哈希表保证元素唯一
TreeSet类概述
使用元素的自然顺序对元素进行排序
或者根据创建 set 时提供的 Comparator 进行排序
具体取决于使用的构造方法
TreeSet是如何保证元素的排序和唯一性的
底层数据结构是红黑树(红黑树是一种自平衡的二叉树)
HashSet集合存储自定义对象并遍历
如果对象的成员变量值相同即为同一个对象
TreeSet集合存储自定义对象并遍历
如果对象的成员变量值相同即为同一个对象
按照年龄进行从大到小进行排序