TreeSet源碼

1、TreeSet分析

TreeSetHashSet一樣;底層採用的是TreeMap,因此理解了TreeMap也就瞭解TreeSet

2、實現原理

HashSet是基於HashMap實現的,元素就是HashMap中的鍵,值是一個固定的值,它是基於TreeMap實現的。

 //m就是背後的TreeMap,這裏用的是更爲通用的接口類型NavigableMap
    private transient NavigableMap<E,Object> m;

    //PRESENT就是那個固定的共享值
    private static final Object PRESENT = new Object();

3、add方法

    //就是調用map的put方法,元素e用左鍵
    public boolean add(E e) {
        return m.put(e, PRESENT)==null;
    }

3、contains方法

  public boolean contains(Object o) {
        return m.containsKey(o);
    }

4、remove 方法

    public boolean remove(Object o) {
        return m.remove(o)==PRESENT;
    }

5、小結

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-EXF7qoQo-1582609875794)(images/14.png)]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章