stream流按指定值排序
时间: 2025-07-21 15:42:41 浏览: 4
### Java Stream API 按指定值排序
在Java中,使用Stream API可以根据对象的字段进行排序。对于包含多个属性的对象列表而言,这尤为有用。假设存在一个`Person`类,其中含有`name`和`age`两个私有成员变量[^3]。
下面展示了一个具体的例子,说明如何基于年龄对一组人员记录升序排列:
```java
import java.util.*;
import java.util.stream.Collectors;
class Person {
private String name;
private int age;
// 构造方法、getter 和 setter 已省略
@Override
public String toString() {
return "Person{name='" + name + "', age=" + age + "}";
}
}
public class Main {
public static void main(String[] args) {
List<Person> people = Arrays.asList(
new Person("Alice", 30),
new Person("Bob", 25),
new Person("Charlie", 35)
);
List<Person> sortedPeopleByAgeAsc = people.stream()
.sorted(Comparator.comparingInt(Person::getAge))
.collect(Collectors.toList());
System.out.println(sortedPeopleByAgeAsc);
}
}
```
如果希望按照姓名降序的方式来进行排序,则可以这样做:
```java
List<Person> sortedPeopleByNameDesc = people.stream()
.sorted(Comparator.comparing((Person p) -> p.getName()).reversed())
.collect(Collectors.toList());
```
此外,在某些情况下可能需要先按某个条件分组再做进一步的操作;比如先依据性别分类后再分别对其内部元素实施不同的排序策略等复杂场景下,也可以借助于Stream API完成多级排序的任务[^1]。
阅读全文
相关推荐


















