集合TreeSet原理刨解JDK1.8(8)

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;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章