1.HashSet分析
hashset 底层是hash表,就是hashMap,是无序的,唯一的.也就是说,它的底层其实就是一个HashMap key 值的组成值。所以具有唯一性。
public HashSet() { map = new HashMap<>(); }
2.LinkedHashSet 底层就是链表和hash表,由链表来保证顺序,用hash表保证唯一性。相当于使用的是 LinkedHashMap,
HashSet(int initialCapacity, float loadFactor, boolean dummy) { map = new LinkedHashMap<>(initialCapacity, loadFactor); }
3.TreeSet 底层数据结构是红黑树,唯一,有序 相当于TreeMap
public TreeSet() { this(new TreeMap<E,Object>()); }
这些,参考map集合的分析。