【treeset】TreeSet 是 Java 集合框架中的一种实现,属于 `java.util` 包下的 `SortedSet` 接口。它基于红黑树(Red-Black Tree)数据结构,能够自动对元素进行排序,并且不允许重复元素。TreeSet 提供了高效的插入、删除和查找操作,时间复杂度为 O(log n)。与 HashSet 相比,TreeSet 更加注重元素的有序性,适用于需要排序和唯一性的场景。在使用时需要注意元素的自然排序或自定义比较器的设置。
表格展示:
| 特性 | 说明 |
| 类型 | 实现类:`TreeSet`,接口:`SortedSet` |
| 数据结构 | 红黑树(Red-Black Tree) |
| 元素顺序 | 自动排序(自然排序或自定义比较器) |
| 是否允许重复 | 不允许重复元素 |
| 是否允许 null 值 | 可以添加一个 null 值(但只能有一个) |
| 插入/删除/查找时间复杂度 | O(log n) |
| 是否线程安全 | 否,非线程安全 |
| 使用场景 | 需要有序集合、去重、范围查询等 |
| 自然排序 | 默认使用元素的 `compareTo()` 方法 |
| 自定义排序 | 可通过构造函数传入 `Comparator` 对象 |
注意事项:
在使用 TreeSet 时,若元素未实现 `Comparable` 接口,或者没有提供自定义比较器,则会抛出 `ClassCastException` 异常。此外,TreeSet 不支持快速随机访问,适合遍历和范围查询。


