TreeSet實現Set接口有序實現Comparable
()接口才行,排重。底層基於TreeMap實現
構造方法
1.第一個默認構造方法創建對象, 對象要實現Comparable
比較
2.第二個傳入比較器,不要求對象實現Comparable。
public TreeSet() {
this(new TreeMap<E,Object>());
}
public TreeSet(Comparator<? super E> comparator) {
this(new TreeMap<>(comparator));
}
普通對象沒有實現Comparable報錯
//構造方法創建調用m引用TreeMap,m位於TreeMap實現後面的NavigableMap
private transient NavigableMap<E,Object> m;
//默認值共享
private static final Object PRESENT = new Object();
和TreeMap用法一樣,主要是調用NavigatableMap()接口
public boolean add(E e) {
return m.put(e, PRESENT)==null;
}