TreeSet 核心知识点总结

底层结构与核心特性

  • 底层:基于红黑树(依赖 TreeMap 实现)
  • 特性:元素唯一、有序序(非插入顺序)、无索引、线程不安全
  • 排序:支持自然排序(元素实现 Comparable)或自定义排序(构造 Comparator
  • 性能:插入 / 查询 / 删除均为 O (log n)

关键方法(表格形式)

方法分类 方法签名 说明
基础操作 boolean add(E e) 添加元素,重复则返回 false
boolean remove(Object o) 删除指定元素,成功返回 true
boolean contains(Object o) 判断元素是否存在
int size() 返回元素个数
boolean isEmpty() 判断集合是否为空
void clear() 清空所有元素
导航操作 E first() 返回最小元素(第一个元素)
E last() 返回最大元素(最后一个元素)
E ceiling(E e) 返回大于等于 e 的最小元素(不存在返回 null)
E floor(E e) 返回小于等于 e 的最大元素(不存在返回 null)
E higher(E e) 返回严格大于 e 的最小元素
E lower(E e) 返回严格小于 e 的最大元素
范围操作 SortedSet<E> subSet(E from, E to) 返回 [from, to) 区间的子集合
SortedSet<E> headSet(E to) 返回小于 to 的所有元素组成的子集合
SortedSet<E> tailSet(E from) 返回大于等于 from 的所有元素组成的子集合

注意事项

  1. 元素默认不可为 null(未处理 null 的排序规则会抛 NullPointerException
  2. 重复判断依赖排序方法(compareTo 或 compare 返回 0 即视为重复)
  3. 适合场景:需有序去重、范围查询的场景(如排行榜、数据排序)