特点:无序 无下标 元素不可重复
一、HashSet去重
底层:HashMap
public HashSet() {
map = new HashMap<>();
}
添加元素的时候,先判断对象的hashcode 是否与现有元素的hashcode 相同。
不相同:直接保存
相同: 需要进一步判断 equals 是否和现有元素相同
相同: 放弃保存
不同: 保存
重写两个方法 hashCode() equals()
二、LinkedHashSet 【了解】
HashSet子类,可以记录元素的添加顺序,底层使用LinkedHashMap。
三、TreeSet 【了解】
他是Sorted接口的实现类,具备元素可排序的能力,可以把元素按照从小到大或者从大到小排列(可以把元素升序降序排列)。
它的底层套娃 TreeMap