TreeSet实现Set接口有序实现Comparable()接口才行,排重。底层基于TreeMap实现
构造方法 1.第一个默认构造方法创建对象, 对象要实现Comparable比较 2.第二个传入比较器,不要求对象实现Comparable。
public TreeSet() {
this(new TreeMap<E,Object>());
}
public TreeSet(Comparator
<? super E
> comparator
) {
this(new TreeMap<>(comparator
));
}
普通对象没有实现Comparable报错
private transient NavigableMap
<E,Object> m
;
private static final Object PRESENT
= new Object();
和TreeMap用法一样,主要是调用NavigatableMap()接口
public boolean add(E e
) {
return m
.put(e
, PRESENT
)==null
;
}