1、TreeSet分析
TreeSet
同HashSet
一樣;底層採用的是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;
}