stream().sorted 如何指定字段进行排序
时间: 2023-10-13 15:15:08 浏览: 242
java使用stream对日期排序
如果你想对一个 Java Stream 进行排序,并且想要指定按照某个字段进行排序,可以使用 `sorted` 方法结合 `Comparator` 接口来实现。具体操作如下:
假设有一个实体类 `Person`,其中包含两个属性 `name` 和 `age`,你想按照 `age` 属性进行排序,可以按照以下步骤进行:
1. 定义一个 `Comparator` 对象,通过实现 `Comparator` 接口的 `compare` 方法来指定排序规则,代码如下:
```java
Comparator<Person> ageComparator = new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
return p1.getAge() - p2.getAge();
}
};
```
2. 在 Stream 上调用 `sorted` 方法,并将上一步定义的 `Comparator` 对象传递给 `sorted` 方法,代码如下:
```java
List<Person> personList = ...
List<Person> sortedList = personList.stream().sorted(ageComparator).collect(Collectors.toList());
```
这样就可以按照 `age` 属性对 `personList` 进行排序,并将排序后的结果存储在 `sortedList` 中。
阅读全文