stream().sorted 多个字段排序
时间: 2023-10-13 09:19:30 浏览: 442
多文件排序
在 Java 8 中,我们可以使用 `sorted` 方法对流进行排序。如果要按照多个字段进行排序,可以按照以下步骤操作:
1. 先按照第一个字段进行排序,使用 `Comparator.comparing` 方法指定排序的字段,例如:
```java
Comparator<Person> firstComparator = Comparator.comparing(Person::getAge);
```
2. 如果第一个字段相同,则按照第二个字段进行排序,使用 `thenComparing` 方法指定第二个排序字段,例如:
```java
Comparator<Person> secondComparator = firstComparator.thenComparing(Person::getName);
```
3. 将多个排序条件组合起来,使用 `sorted` 方法进行排序,例如:
```java
List<Person> sortedList = persons.stream()
.sorted(secondComparator)
.collect(Collectors.toList());
```
上述代码中,首先按照年龄进行排序,如果年龄相同,则按照姓名进行排序。最终得到的 `sortedList` 就是按照多个字段进行排序后的结果。
阅读全文