Comparator.comparing().reversed()
时间: 2023-11-14 20:10:10 浏览: 47
这是一个 Java 8 中的排序方法,用于对集合进行排序。它可以按照指定的属性进行排序,并且可以选择升序或降序排列。其中,`comparing()` 方法用于指定排序属性,`reversed()` 方法用于指定排序方式为降序。
例如,如果有一个 `List<Person>` 类型的集合,其中 `Person` 类有一个 `age` 属性,我们可以使用以下代码对其进行按年龄降序排序:
```
Collections.sort(personList, Comparator.comparing(Person::getAge).reversed());
```
相关问题
comparator.comparing 倒序
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()方法进行倒序排序。最后输出的结果是按照年龄的倒序排序的学生列表。
Comparator.comparing 倒叙
要按倒序对对象进行排序,可以使用`Comparator.comparing`方法的变体`Comparator.comparingXXX`,其中`XXX`是要比较的对象属性。然后,可以使用`reversed()`方法将比较器反转,以实现倒序排序。下面是一个示例:
```java
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "cherry", "durian");
// 按字符串长度倒序排序
fruits.sort(Comparator.comparing(String::length).reversed());
System.out.println(fruits); // 输出:[banana, cherry, apple, durian]
}
}
```