Collections.sort(list) 倒叙
时间: 2025-05-26 13:29:23 浏览: 7
在 Java 中,`Collections.sort(list)` 默认是按照自然顺序(升序)对列表进行排序的。如果要实现倒序(降序)排序,可以通过传递一个自定义的 `Comparator` 来实现。
以下是实现倒序排序的代码示例:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(5, 3, 8, 1, 9, 2));
// 使用自定义 Comparator 实现倒序排序
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1); // 倒序逻辑
}
});
System.out.println("倒序排序后的列表: " + list);
}
}
```
### 解释:
1. `Collections.sort(list, Comparator<? super T> c)` 方法接受两个参数:一个是需要排序的列表,另一个是一个比较器对象。
2. 在比较器中,我们通过 `o2.compareTo(o1)` 来实现倒序排序。`compareTo` 是 `Comparable` 接口中的方法,它返回负数、零或正数,分别表示调用对象小于、等于或大于参数对象。在这里,我们交换了 `o1` 和 `o2` 的位置,从而实现了倒序排序。
此外,从 Java 8 开始,可以使用 Lambda 表达式简化代码:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(5, 3, 8, 1, 9, 2));
// 使用 Lambda 表达式实现倒序排序
Collections.sort(list, (o1, o2) -> o2.compareTo(o1));
System.out.println("倒序排序后的列表: " + list);
}
}
```
或者使用 `Comparator.reverseOrder()` 方法(Java 8 引入)来更简洁地实现倒序排序:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>(Arrays.asList(5, 3, 8, 1, 9, 2));
// 使用 Comparator.reverseOrder() 实现倒序排序
Collections.sort(list, Comparator.reverseOrder());
System.out.println("倒序排序后的列表: " + list);
}
}
```
### 解释:
- `Comparator.reverseOrder()` 是 Java 8 引入的一个静态方法,它直接返回一个用于倒序排序的比较器,使得代码更加简洁。
---
阅读全文
相关推荐


















