特点:无序 无下标 元素不可重复

一、HashSet去重

底层:HashMap

  1. public HashSet() {
  2. map = new HashMap<>();
  3. }

添加元素的时候,先判断对象的hashcode 是否与现有元素的hashcode 相同。
不相同:直接保存
相同: 需要进一步判断 equals 是否和现有元素相同
相同: 放弃保存
不同: 保存

重写两个方法 hashCode() equals()

二、LinkedHashSet 【了解】

HashSet子类,可以记录元素的添加顺序,底层使用LinkedHashMap。
set - 图1

三、TreeSet 【了解】

他是Sorted接口的实现类,具备元素可排序的能力,可以把元素按照从小到大或者从大到小排列(可以把元素升序降序排列)。
它的底层套娃 TreeMap