TreeSet
TreeSet 是一个有序集合,它的作用是提供有序的Set集合。其继承于 AbstractSet 类TreeSet 实现了 NavigableSet 接口,意味着它支持一系列的导航方法。比如查找指定目标最匹配项。
TreeSet 是通过 TreeMap 实现的一个有序的、不可重复的集合,底层维护的是红黑树结构。当TreeSet的泛型对象不是java的基本类型的包装类时,对象需要实现接口Comparable并重写此接口中的compareTo()方法。
TreeSet 实现了 Serializable 接口,所以它支持序列化。
构造方法
public TreeSet()
构造一个新的,空的树组,根据其元素的自然排序进行排序。插入到集合中的所有元素必须实现Comparable接口。 此外,所有这些元素必须是相互可比的 : e1.compareTo(e2)不能为ClassCastException中的任何元素e1和e2 。 如果用户尝试向组中添加违反此约束的元素(例如,用户尝试将字符串元素添加到其元素为整数的集合),则add调用将抛出ClassCastException异常 。
public TreeSet(Comparator<? super E> comparator)
构造一个新的,空的树集,根据指定的比较器进行排序。 插入到集合中的所有元素必须由指定的比较器相互比较: comparator.compare(e1,e2)不能为ClassCastException中的任何元素e1和e2 。如果用户尝试向该集合添加一个违反此约束的元素,则add调用将抛出ClassCastException异常 。
public TreeSet(Collection<? extends E> c)
构造一个包含指定集合中的元素的新树集,根据其元素的自然排序进行比较 。插入到集合中的所有元素必须实现Comparable接口。相互可比的 e1.compareTo(e2)不能为ClassCastException中的任何元素e1和e2 。
public TreeSet(SortedSet s)
构造一个包含相同元素的新树,并使用与指定排序集相同的顺序。
常用方法
** 使用前需要导包**
// TreeSet 类在 java.util 中
import java.util.TreeSet;
创建一个 String 类型的TreeSet 对象 treeSet
TreeSet<String> treeSet = new TreeSet<>();
添加元素
// 将指定的元素添加到此集合中(如果尚未存在), 返回 boolean
public boolean add(E e);
// 将指定集合中的所有元素添加到此集合中, 返回 boolean
public boolean addAll(Collection<? Extends E> c);
添加元素实例
TreeSet<String> treeSet = new TreeSet<>();
// 添加元素
treeSet.add("xxx");
treeSet.add("yyy");
treeSet.add("zzz");
TreeSet