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;
}