Set
Set :无序 不可重复
HashSet:hashMap
hashCode决定元素在数组中的位置 在存入元素时 首先计算该元素的hashCode值 hashCode决定了该元素在数组中存储的位置
如果该HashCode值 与当前数组中所有的元素的hashCode都不相同 直接将元素保存到set中
如果HashCode 与当前数组中某一个元素的hasCode相同,
则需要调用其equals方法
equals返回true 此时判定为重复 不保存
equals返回false 则认为不重复 保存可以成功 存储的方式是采用链表
LinkedHashSet:HashSet的子类 在其中采用双向链表来维护元素的存入顺序
LinkedHashSet 效率低于HashSet
TreeSet:TreeMap 红黑树结构
TreeSet要求对于存入其中的元素要实现一个比较器
排序方式:自然排序 定制排序
在排序中 对数组 英文 采用字典顺序
汉字 采用汉字的Unicode码进行排序
定制排序:在定义容器的时候 为容器来指定所使用的比较器
- 外部类来实现
- 采用成员内部类
- 匿名内部类