头歌ava集合类之Set的TreeSet之自定义排序规则
时间: 2024-05-10 11:14:54 浏览: 123
在使用 TreeSet 时,如果要自定义排序规则,可以实现 Comparator 接口来实现自定义排序。Comparator 接口中有一个 compare 方法,可以在其中定义排序规则。
以下是一个示例代码,演示如何使用 TreeSet 进行自定义排序:
```java
import java.util.Comparator;
import java.util.TreeSet;
public class TreeSetDemo {
public static void main(String[] args) {
// 创建 TreeSet,并传入自定义比较器
TreeSet<Integer> treeSet = new TreeSet<>(new MyComparator());
// 添加元素
treeSet.add(5);
treeSet.add(3);
treeSet.add(8);
treeSet.add(1);
// 遍历元素
for (Integer i : treeSet) {
System.out.println(i);
}
}
// 自定义比较器
static class MyComparator implements Comparator<Integer> {
@Override
public int compare(Integer o1, Integer o2) {
// 按照元素的绝对值进行排序
return Math.abs(o1) - Math.abs(o2);
}
}
}
```
输出结果为:
```
1
3
5
8
```
在上面的示例代码中,我们创建了一个 TreeSet,并传入了自定义的比较器 MyComparator。在 MyComparator 中,我们重写了 compare 方法,按照元素的绝对值进行排序。最后输出结果按照绝对值从小到大排序。
阅读全文