listmap通过stream流分组之后再转换成listmap
时间: 2024-11-27 12:18:22 浏览: 1
在Java中,你可以使用`Stream` API来进行集合的分组操作,然后将结果转换为`Map<键, List<值>>`的形式。ListMap是一种特殊的Map结构,它允许每个键关联多个值。下面是一个示例:
```java
import java.util.*;
import java.util.stream.Collectors;
List<Map<String, String>> dataList = // 假设这是你的原始数据列表,如:[{"name": "John", "age": "25"}, {"name": "Jane", "age": "30"}];
// 使用Stream对数据进行分组
Map<String, List<String>> groupedListMap = dataList.stream()
.collect(Collectors.groupingBy(map -> map.get("name"), Collectors.mapping(map -> map.get("age"), Collectors.toList())));
groupedListMap.forEach((key, valueList) -> {
System.out.println("Name: " + key + ", Ages: [" + valueList.toString() + "]");
});
```
在这个例子中,我们首先从每个元素中提取"名字"作为键,"年龄"作为值,然后使用`Collectors.groupingBy`将具有相同名字的数据收集到一起,并使用`Collectors.toList`将年龄值转换为List。
阅读全文