stream流 对象集合根据多字段分组
时间: 2024-09-23 20:09:01 浏览: 69
Java8进行多个字段分组统计的实例代码
Stream API在Java中提供了一种高效处理大数据集的方式,它允许你在集合上进行各种操作,包括基于多个字段进行分组。当需要按照两个或更多属性对数据进行分组时,可以使用`Collectors.groupingBy`方法。
假设我们有一个Person对象列表,包含姓名(name)和年龄(age),我们可以这样做:
```java
List<Person> people = ...; // 假设Person类有name和age属性
Map<String, List<Person>> groupedPeople = people.stream()
.collect(Collectors.groupingBy(Person::getName, Collectors.mapping(Person::getAge, Collectors.toList())));
```
这将返回一个Map,键是人的名字,值是一个Person对象列表,列表中的人都有相同的年龄。这里的`Person::getName`和`Person::getAge`是方法引用,表示对每个元素按name属性分组,并提取出age属性用于创建新的列表。
阅读全文