Summary:
- public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializable
- 该类不负责实现,功能的实现全部依靠类中的TreeMap进行实现,与普通TreeMap对象的区别就是TreeSet里面的TreeMap中的value永远是一个固定的值——new Obejct;
- add:使用TreeMap对象的put(Object key,PRESENT)方法实现
- contains:使用TreeMap对象的containsKey(Object key)方法实现
- remove:使用TreeMap对象的remove(Object key)方法实现
Fields:
private static final Object PRESENT = new Object();
private transient NavigableMap<E,Object> m;
Constructor:
//此处可以知道TreeSet内部默认是用一个TreeMap对象的
public TreeSet() {
this(new TreeMap<E,Object>());
}
size():
public int size() {
return m.size();
}
isEmpty():
public boolean isEmpty() {
return m.isEmpty();
}
contains():
public boolean contains(Object o) {
return m.containsKey(o);
}
add():
public boolean add(E e) {
return m.put(e, PRESENT)==null;
}
remove():
public boolean remove(Object o) {
return m.remove(o)==PRESENT;
}
clear():
public void clear() {
m.clear();
}
first():
public E first() {
return m.firstKey();
}
last():
public E last() {
return m.lastKey();
}