Skip to content

TreeSet

TreeSet 是 Java 集合框架中的一个实现了 NavigableSet 接口的类,==基于红黑树==(自平衡二叉搜索树)实现,用于存储有序且不重复的元素。

主要特点

  • 有序性TreeSet 中的元素按照其自然顺序(需实现 Comparable 接口)或通过提供的 Comparator 进行排序。
  • 唯一性:不允许存储重复的元素。
  • 非线程安全:在多线程环境下,需手动同步以确保线程安全。
  • 不允许 null 元素:由于需要进行排序,TreeSet 不支持存储 null 值,否则会抛出 NullPointerException

常用方法

int size()

返回此集合中的元素数。

boolean add(E e)

将指定的元素添加到集合中(如果尚未存在)。

boolean addAll(Collection<? extends E> c)

将指定集合中的所有元素添加到此集合中。

E ceiling(E e)

返回此集合中大于等于给定元素的最小元素;如果不存在这样的元素,则返回 null

void clear()

移除此集合中的所有元素。

Object clone()

返回此 TreeSet 实例的浅表副本。

Comparator<? super E> comparator()

返回对此集合中的元素进行排序的比较器;

如果此集合使用其元素的自然顺序, null

boolean contains(Object o)

如果此集合包含指定的元素,则返回 true

Iterator<E> descendingIterator()

返回在此集合元素的降序视图上进行迭代的迭代器。

返回此集合中元素的逆序视图。

E first()

返回此集合中的第一个(最低)元素。

E floor(E e)

返回此集合中小于等于给定元素的最大元素;如果不存在这样的元素,则返回 null

SortedSet<E> headSet(E toElement)

返回此集合的部分视图,其元素严格小于 toElement

返回此集合的部分视图,其元素小于(或等于,如果 inclusivetruetoElement

E higher(E e)

返回此集合中严格大于给定元素的最小元素;如果不存在这样的元素,则返回 null

boolean isEmpty()

如果此集合不包含元素,则返回 true

Iterator<E> iterator()

返回在此集合中的元素上按升序进行迭代的迭代器。

E last()

返回此集合中的最后一个(最高)元素。

E lower(E e)

返回此集合中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null

E pollFirst()

检索并移除此集合的第一个(最低)元素;如果此集合为空,则返回 null

E pollLast()

检索并移除此集合的最后一个(最高)元素;如果此集合为空,则返回 null

boolean remove(Object o)

从此集合中移除指定的元素(如果存在)。

返回此集合的部分视图,其元素范围从 fromElement(包括或不包括,取决于 fromInclusive)到 toElement(包括或不包括,取决于 toInclusive)。

SortedSet<E> subSet(E fromElement, E toElement)

返回此集合的部分视图,其元素范围从 fromElement(包括)到 toElement(不包括)。

SortedSet<E> tailSet(E fromElement)

返回此集合的部分视图,其元素大于等于 fromElement

返回此集合的部分视图,其元素大于(或等于,如果 inclusivetruefromElement

TreeSet比较

  1. 默认排序/自然排序:javabean类实现Comparable接口指定排序规则
  2. 比较器排序:创建TreeSet对象的时候,传递比较器Comparator指定规则
  • 默认使用第一种方式,如果第一种无法满足,使用第二种

评论区

欢迎留言、补充或勘误。

xiaoba.blog