comparator.comparing 倒序
时间: 2023-09-19 19:02:23 浏览: 122
comparator.comparing可以用于对对象进行排序,通过指定某个属性或者函数来进行比较。如果想要进行倒序排序,可以使用comparator.comparing方法的重载方法comparator.reversed()来实现。
comparator.reversed()是一个中间方法,它返回一个新的比较器,该比较器具有与原始比较器相反的顺序。也就是说,原本顺序的比较器通过reversed方法之后,比较结果将相反。
例如,我们有一个学生类Student,它有姓名和年龄两个属性,我们想要按照年龄的倒序进行排序。可以这样实现:
```
public class Student {
private String name;
private int age;
// 构造方法、getter和setter等省略
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
students.add(new Student("Tom", 20));
students.add(new Student("Alice", 18));
students.add(new Student("Bob", 22));
// 使用comparator.comparing和comparator.reversed进行倒序排序
students.sort(Comparator.comparing(Student::getAge).reversed());
for (Student student : students) {
System.out.println(student.getName() + ", " + student.getAge());
}
}
}
```
运行以上代码,输出结果为:
```
Bob, 22
Tom, 20
Alice, 18
```
以上示例中,我们使用comparator.comparing(Student::getAge)指定按照年龄进行排序,然后使用reversed()方法进行倒序排序。最后输出的结果是按照年龄的倒序排序的学生列表。
阅读全文