TreeSet集合,也没啥分析的,底层是一个TreeMap集合,TreeSet的方法,也都是调用TreeMap的方法。
——TreeSet集合的成员变量
private transient NavigableMap<E,Object> m;//底层是一个Map,TreeMap就是NavigableMap的一个实现类,
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();//Map集合是key-value,set集合使用默认的Objcet对象充当value值
——TreeSet集合的构造方法
/*
* 构造方法
*/
TreeSet(NavigableMap<E,Object> m) {
this.m = m;
}
/*
无参数构造方法,
*/
public TreeSet() {
this(new TreeMap<E,Object>());//调用的是TreeSet(NavigableMap<E,Object> m)构造方法
}
public TreeSet(Comparator<? super E> comparator) {
this(new TreeMap<>(comparator));
}
public TreeSet(Collection<? extends E> c) {
this();//调用的是TreeSet()
addAll(c);
}
public TreeSet(SortedSet<E> s) {
this(s.comparator());//调用的是TreeSet(Comparator<? super E> comparator)
addAll(s);
}
——TreeSet集合的普通方法
自己去看api吧。