【JAVA】【集合15】Java中的TreeSet


一、TreeSet定义

HashSet在java.util.TreeSet中定义。

TreeSet是一个有序的集合,它的作用是提供有序的Set集合。它继承了AbstractSet抽象类,实现了NavigableSet,Cloneable,Serializable接口。TreeSet是基于TreeMap实现的,TreeSet的元素支持2种排序方式:自然排序或者根据提供的Comparator进行排序。

1.TreeSet继承于AbstractSet,并且实现了NavigableSet接口。

2.TreeSet是一个包含有序的且没有重复元素的集合,通过TreeMap实现。TreeSet中含有一个"NavigableMap类型的成员变量"m,而m实际上是"TreeMap的实例"。

public class TreeSet extends AbstractSet
    implements NavigableSet, Cloneable, java.io.Serializable {
	.....
	private transient NavigableMap m;
	.....

}

在构造方法中初始化m如下:

public TreeSet() {
        this(new TreeMap());
}

二、HashSet的常用方法

1. 构造方法

public TreeSet() {
        this(new TreeMap());
}
public TreeSet(Comparator<? super E> comparator)
public TreeSet(Collection<? extends E> c)
public TreeSet(SortedSet s)

其他方法同Set接口中方法声明。