stream 多字段排序
时间: 2023-10-28 09:05:23 浏览: 88
Stream可以通过Comparator来实现多字段排序。在进行多字段排序时,可以通过多次调用Comparator的thenComparing方法来指定多个排序条件。例如,假设我们有一个Student类,其中有两个字段name和age,我们可以使用Stream对Student对象进行多字段排序。
```java
List<Student> students = ...; // 假设有一个Student对象的集合
List<Student> sortedStudents = students.stream()
.sorted(Comparator.comparing(Student::getName)
.thenComparing(Student::getAge))
.collect(Collectors.toList());
```
上述代码首先根据name字段进行升序排序,然后在name相同时再根据age字段进行升序排序。如果要对某个字段进行降序排序,则可以在该字段的Comparator后面使用reversed方法。例如,要对name字段进行降序排序,可以使用以下代码:
```java
List<Student> sortedStudents = students.stream()
.sorted(Comparator.comparing(Student::getName).reversed()
.thenComparing(Student::getAge))
.collect(Collectors.toList());
```
阅读全文