TreeSet 简介
- TreeSet 是一个有序集合,它的作用是提供有序的Set集合。其继承于 AbstractSet 类
- TreeSet 实现了 NavigableSet 接口,意味着它支持一系列的导航方法。比如查找指定目标最匹配项
- TreeSet 实现了 Serializable 接口,因此它支持序列化
- TreeSet 是通过 TreeMap 实现的一个有序的、不可重复的集合,底层维护的是红黑树结构。当TreeSet的泛型对象不是java的基本类型的包装类时,对象需要重写 Comparable#compareTo()方法
TreeSet的构造方法
//默认构造方法。使用改
TreeSet()
// 创建的 TreeSet 包含 collection
TreeSet(Collection<? extends E> collection)
// 指定 TreeSet 的比较器
TreeSet(Comparator<? super E> comparator)
// 创建的 TreeSet 包含set
TreeSet(SortedSet<E> set)
TreeSet的常用方法
- 说明:TreeSet是有序的Set集合,因此支持add、remove、get等方法。
- tSet.add()
public boolean add(E e)
如果指定的元素尚不存在,则将其添加到此集合中。如果此set已包含该元素,则调用将保持set不变并返回false。
- tSet.addAll()
public boolean addAll(Collection <?extends E > c)
将指定集合中的所有元素添加到此集合中。
- tSet.remove()
public boolean remove(Object o)
如果存在,则从该集合中移除指定的元素,并返回 true。
- tSet.size()
返回集合中的元素数。
- tSet.isEmpty()
public boolean isEmpty()
如果此set不包含任何元素,则返回true,否则返回false
- 说明:和NavigableSet一样,TreeSet的导航方法大致可以区分为两类,一类时提供元素项的导航方法,返回某个元素;另一类时提供集合的导航方法,返回某个集合。
lower、floor、ceiling 和 higher 分别返回小于、小于等于、大于等于、大于给定元素的元素,如果不存在这样的元素,则返回 null。
- tSet.ceiling()
public E ceiling(E e)
返回此set中大于或等于给定元素的最小元素,或者null如果没有这样的元素。
- tSet.floor()
public E floor(E e)
返回此set中小于或等于给定元素的最大元素,或者null如果没有这样的元素。
- tSet.lower()
public E lower(E e)
返回此集合中的最大元素严格小于给定元素,或者null如果没有这样的元素。
- tSet.higher()
public E higher(E e)
返回此集合中的最小元素严格大于给定元素,或者null如果没有这样的元素。
- tSet.contains()
public boolean contains(Object o)
true如果此set包含指定的元素,则返回。更正式地说,返回true当且仅当此set包含的元素e,使得 Objects.equals(o, e)。
TreeSet的遍历
待续…