1 前言
本人使用的是jdk1.8版本。
2 List集合继承结构
3 底层实现
TreeSet的底层是TreeMap,添加的数据存入了map的key的位置,而value则固定是PRESENT。TreeSet中的元素是有序且不重复的,因为TreeMap中的key是有序且不重复的。具体参考:TreeMap的底层原理。
public class TreeSet<E> extends AbstractSet<E>
implements NavigableSet<E>, Cloneable, java.io.Serializable{
private transient NavigableMap<E,Object> m;
private static final Object PRESENT = new Object();
public TreeSet() {
this(new TreeMap<E,Object>());
}
}
4 方法
4.1 add()
就是调用TreeMap的put方法。
public boolean add(E e) {
return m.put(e, PRESENT)==null;
}
4.2 remove()
就是调用TreeMap的remove方法。
public boolean remove(Object o) {
return m.remove(o)==PRESENT;
}