TreeSet是依赖于TreeMap的NavigableSet接口的实现,实际上是个TreeMap的实例。TreeSet的特点是使用元素的自然顺序对元素进行排序,或者根据创建set时提供的Comparator进行排序。
TreeSet是依赖于TreeMap的NavigableSet接口的实现。所以HashSet的数据结构也是红黑树。

定义

public class TreeSet<E< extends AbstractSet<E&lt implements NavigableSet<E&lt, Cloneable, java.io.Serializable
  • TreeSet:TreeSet支持泛型。
  • extends AbstractSet:继承了AbstractSet,实现Set接口时需要实现的工作量大大减少了。
  • implements NavigableSet:实现了NavigableSet,实现具有了为给定搜索目标报告最接近匹配项的导航方法。
  • implements Cloneable:表明其可以调用clone()方法来返回实例的field-for-field拷贝。
  • implements Serializable:表明该类是可以序列化的。

构造方法

TreeSet一共有5种构造方法:

  1. TreeSet(NavigableMap<E,Object> m):根据指定的NavigableMap构造一个set。
  2. TreeSet():构造一个新的空set,该set根据其元素的自然顺序进行排序。
  3. TreeSet(Comparator<? super E> comparator):构造一个新的空TreeSet,它根据指定比较器进行排序。
  4. TreeSet(Collection<? extends E> c):构造一个包含指定collection元素的新TreeSet,它按照其元素的自然顺序进行排序。
  5. TreeSet(SortedSet s):构造一个与指定有序set具有相同映射关系和相同排序的新TreeSet。