treeSet
时间: 2025-04-08 20:15:10 浏览: 33
### Java TreeSet 的使用方法及示例
#### 什么是 TreeSet?
`TreeSet` 是 Java 集合框架中的一个重要实现类,它继承自 `AbstractSet` 并实现了 `NavigableSet` 接口。`TreeSet` 底层基于红黑树结构实现,因此它可以自动对存储的元素进行排序。
以下是关于 `TreeSet` 常见操作的具体说明及其代码示例:
---
#### 创建并初始化 TreeSet
可以通过无参构造函数创建一个默认的 `TreeSet` 实例,或者通过指定比较器来定义排序方式[^4]。
```java
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
// 默认按照自然顺序排列
TreeSet<Integer> treeSet = new TreeSet<>();
// 添加元素到 TreeSet 中
treeSet.add(10);
treeSet.add(5);
treeSet.add(20);
System.out.println("TreeSet elements: " + treeSet); // 输出 {5, 10, 20}
}
}
```
上述代码展示了如何向 `TreeSet` 插入数据,并按升序排列[^2]。
---
#### 获取子集(subSet)
可以利用 `subSet()` 方法获取某个范围内的子集合。此方法接受两个参数:起始值和结束值(不包含结束值)。如果不存在满足条件的元素,则返回空集合[^1]。
```java
import java.util.TreeSet;
public class SubSetExample {
public static void main(String[] args) {
TreeSet<Integer> treeSet = new TreeSet<>();
treeSet.add(1);
treeSet.add(5);
treeSet.add(10);
treeSet.add(15);
treeSet.add(20);
// 获取介于 5 和 15 之间的元素(不含边界)
System.out.println(treeSet.subSet(5, 15)); // 输出 [10]
}
}
```
---
#### 查找第一个元素(first())
调用 `first()` 可以获得当前集合中最小的一个元素。如果没有元素存在则抛出异常[^3]。
```java
import java.util.TreeSet;
public class FirstElementExample {
public static void main(String[] args) {
TreeSet<String> treeSet = new TreeSet<>();
treeSet.add("Apple");
treeSet.add("Banana");
treeSet.add("Cherry");
String firstElement = treeSet.first();
System.out.println("First element is: " + firstElement); // 输出 Apple
}
}
```
---
#### 自定义 Comparator 进行排序
当希望改变默认的自然排序逻辑时,可传入自定义的 `Comparator` 对象给 `TreeSet` 构造器。
```java
import java.util.Comparator;
import java.util.TreeSet;
public class CustomComparatorExample {
public static void main(String[] args) {
TreeSet<String> treeSet = new TreeSet<>(new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return Integer.compare(s2.length(), s1.length()); // 按字符串长度降序排列
}
});
treeSet.add("Short");
treeSet.add("LongerString");
treeSet.add("MediumLength");
System.out.println("Sorted by length descending: " + treeSet);
// 输出 [LongerString, MediumLength, Short]
}
}
```
---
#### 总结
以上介绍了 `TreeSet` 的基本功能以及一些常用的方法,包括但不限于添加元素、查找特定位置的数据项、提取部分区间的内容等。这些特性使得 `TreeSet` 成为了处理有序且唯一数据的理想容器之一。
阅读全文
相关推荐

















