如何利用自定义的Comparator进行降序排列?
时间: 2024-09-13 20:04:09 浏览: 41
Java Comparable和Comparator对比详解
要利用自定义的`Comparator`实现降序排列,你需要在`compare`方法中反转比较的逻辑。当需要降序时,你应该返回两个待比较元素之间的一个负数值、零或者正数值,表示第一个元素应该排在第二个元素之后。这是一个例子:
```java
// 对于整数数组按降序排列
List<Integer> numbers = Arrays.asList(5, 2, 8, 1, 9);
Collections.sort(numbers, Collections.reverseOrder()); // 使用默认的Integer.compare的反向版本
// 或者自定义Comparator
Comparator<Integer> descendingComparator = (a, b) -> b - a;
numbers.sort(descendingComparator);
```
如果你有一个自定义对象类,比如`Person`,并希望按年龄降序排列,那么`compare`方法会类似这样:
```java
Comparator<Person> ageDescComparator = (p1, p2) -> p2.getAge() - p1.getAge();
```
阅读全文