使用Java stream按照某个字段进行排序示例
时间: 2023-07-30 18:11:53 浏览: 121
假设有一个对象列表,每个对象有一个名字和一个年龄字段。我们想要按照年龄字段进行排序,可以使用Java stream按照某个字段进行排序,示例代码如下:
```java
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 25));
people.add(new Person("Bob", 30));
people.add(new Person("Charlie", 20));
// 按照年龄升序排序
List<Person> sortedByAge = people.stream()
.sorted(Comparator.comparingInt(Person::getAge))
.collect(Collectors.toList());
// 按照年龄降序排序
List<Person> sortedByAgeDesc = people.stream()
.sorted(Comparator.comparingInt(Person::getAge).reversed())
.collect(Collectors.toList());
```
这里我们使用了 `Comparator.comparingInt` 方法,传入一个获取年龄字段的方法引用 `Person::getAge`,并将其作为排序的依据。`reversed()` 方法可以将排序结果反转,从而实现按照年龄降序排序。最后使用 `collect` 方法将排序后的流转换为列表对象。
阅读全文