TreeSet是按照自然排序,或者通过在设置创建时提供的Comparator来排序的,取决于使用的构造函数。
public class TreeSet<E> extends AbstractSet<E>
implements NavigableSet<E>, Cloneable, java.io.Serializable
继承于AbstractSet,而AbstractSet实现了Set接口。Set接口提供的方法:
public interface Set<E> extends Collection<E> {
//set中包含元素的个数
int size();
//set是否为空
boolean isEmpty();
//set是否包含指定元素
boolean contains(Object o);
//基于set的迭代器
Iterator<E> iterator();
//返回包含set所有元素的数组
Object[] toArray();
//返回包含set所有元素的数组
<T> T[] toArray(T[] a);
//如果set中不存在指定元素,添加它到set中
boolean add(E e);
//如果set中存在指定元素,将它删除
boolean remove(Object o);
//获取set中是否包含Collection<?> c中所有元素
boolean containsAll(Collection<?> c);
//将所有Collection<? extends E> c所有元素添加到set中(假如在set中不存在)
boolean addAll(Collection<? extends E> c);
//仅保留此集合中包含在Collection<?> c中的元素(可选操作)
boolean retainAll(Collection<?> c);
//删除此集合中包含在Collection<?> c中的元素(可选操作)
boolean removeAll(Collection<?> c);
//删除set中所有元素(可选操作)
void clear();
//比较set与Object o是否相等
boolean equals(Object o);
//计算set的hash值
int hashCode();
而AbstractSet实现的方法有:
equals(Object o)
作用:判断Object o是否与当前AbstractSet相等。
hashCode()
作用:计算当前AbstractSet的hash值。
removeAll(Collection<?> c)
作用:删除当前Set中存在于Collection<?> c中的元素。