java流 stream 相同的字段 按照一个字段排序
时间: 2024-10-16 10:08:22 浏览: 28
在 Java 中,Stream API 提供了方便的方式来处理集合数据并进行排序。如果你有一个包含相同字段的对象列表,并想要按照其中一个字段进行排序,你可以使用 `sorted()` 函数配合 Lambda 表达式。假设你有这样一个 Person 类:
```java
class Person {
String name;
int age;
// getters and setters
}
```
要按照年龄 (`age`) 进行升序排序,可以这样做:
```java
List<Person> persons = ...; // 初始化人员列表
List<Person> sortedByAge = persons.stream()
.sorted(Comparator.comparing(Person::getAge)) // 使用lambda表达式指定排序依据
.collect(Collectors.toList());
```
这里 `Comparator.comparing(Person::getAge)` 是一个函数式接口的实例,它告诉 Java 要使用 `Person` 的 `getAge` 方法作为排序键。
如果你想降序排序,则可以添加 `.reversed()`:
```java
List<Person> sortedByAgeDesc = persons.stream()
.sorted(Comparator.comparing(Person::getAge).reversed())
.collect(Collectors.toList());
```
阅读全文