java stream流 group写法
时间: 2024-07-23 14:00:50 浏览: 70
在Java Stream API中,`groupingBy()`函数常用于将集合元素按照某个属性进行分组,返回的结果是一个Map,其中键是属性值,值是包含相应属性值的元素列表。这个过程通常发生在对数据进行分析或转换操作前,以便于后续的操作。
例如,假设有一个Person对象列表,你想按年龄分组:
```java
List<Person> people = ...; // List of Person objects
Map<Integer, List<Person>> ageGroups = people.stream()
.collect(Collectors.groupingBy(Person::getAge)); // 使用lambda表达式指定key生成策略
// 现在ageGroups是一个Map,键是年龄,值是该年龄对应的人
```
在这个例子中,`Person::getAge`是一个方法引用,表示每个Person对象的age属性。`Collectors.groupingBy()`方法收集Stream并基于提供的键生成策略进行分组。
阅读全文