Java中的TreeSet
TreeSet提供了SortedSet接口的一种实现,该接口继承了Set接口。它的行为类似于简单的Set,但与之不同的是,它以排序的形式存储元素。以下是TreeSet的特点。
- TreeSet使用树形数据结构进行存储。
- 对象以升序的方式存储。但我们可以使用TreeSet.descendingIterator()方法迭代降序。
- 访问和检索时间非常快,使TreeSet成为在排序格式下存储大量数据的优选。
- TreeSet不使用hashCode()和equals()方法来比较它的元素。它使用compare()(或compareTo())方法来确定两个元素的相等性。
treeset类的重要方法:
- boolean add(E e): 如果此set中不存在指定的元素,则将指定的元素添加到该set中。
- E ceiling(E e): 如果存在大于或等于给定元素的最小元素,则此方法返回该set中最小的此类元素,否则返回null。
- boolean contains(Object o): 如果此set包含指定的元素,则返回true。
- E floor(E e): 如果存在小于或等于给定元素的最大元素,则此方法返回该set中最大的此类元素,否则返回null。
- E pollFirst(): 检索并删除第一个(最低)元素,如果此set为空,则返回null。
- E pollLast(): 检索并删除最后一个(最高)元素,如果此set为空,则返回null。
- boolean remove(Object o): 如果存在指定的元素,则从该set中删除该元素。
以下是一个非常简单的TreeSet实现,包括TreeSet的排序、TreeSet中的迭代、检索第一个和最后一个元素以及删除元素。
输出: