stream某一字段按指定值排序
时间: 2024-10-28 13:15:28 浏览: 2
java使用stream对日期排序
在Java 8及以上的版本中,可以使用`Stream API`对集合中的对象进行排序,特别适合处理大量数据。如果你想按照某个字段进行排序,例如一个Person对象的age字段,你可以这样做:
```java
List<Person> persons = ... // 初始化你的person列表
// 使用lambda表达式和Comparator
List<Person> sortedByAge = persons.stream()
.sorted(Comparator.comparing(Person::getAge)) // 指定年龄字段
.collect(Collectors.toList()); // 收集排序后的结果到新的列表
// 或者使用匿名内部类 if Java版本较旧
List<Person> sortedByAgeOldVersion = persons.stream()
.sorted(new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
return Integer.compare(p1.getAge(), p2.getAge());
}
})
.collect(Collectors.toList());
```
这里的关键是`comparing()`方法,它返回一个新的Comparator用于比较Person对象,然后`sorted()`方法会根据这个Comparator对流进行排序。
阅读全文