java stream 对list类有a,b元素 分组 map<a,List<b>>
时间: 2024-03-04 12:48:11 浏览: 76
JAVA8 stream中三个参数的reduce方法对List进行分组统计操作
5星 · 资源好评率100%
好的,让我来为您提供一个Java Stream的实现。
假设您的列表中的每个元素都是一个包含a和b属性的对象,您可以按照以下步骤进行操作:
1. 使用stream()方法将列表转换为流:
```java
List<MyObject> myList = ... // your list of objects
Map<String, List<MyObject>> result =
myList.stream()
.collect(Collectors.groupingBy(MyObject::getA));
```
2. 使用groupingBy方法按照a属性对流进行分组,并使用一个mapping收集器来选择每个分组中的b属性值:
```java
Collectors.groupingBy(MyObject::getA, Collectors.mapping(MyObject::getB, Collectors.toList())))
```
在上面的代码中,我们使用了一个groupingBy收集器来按照a属性对流进行分组,并使用一个mapping收集器来选择每个分组中的b属性值。最终,我们将所有分组结果存储在一个Map中,其中每个元素都是一个a属性值和对应的b属性值列表。
希望这可以帮助您解决您的问题!
阅读全文