java利用stream将List<Map<String, String>>对象转为Map<String,List<String>
时间: 2023-07-09 21:37:55 浏览: 127
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
可以使用Java 8中的Stream API来实现将List<Map<String, String>>对象转换为Map<String,List<String>>,具体代码如下:
```java
List<Map<String, String>> list = new ArrayList<>();
// 假设 list 中有多个 Map<String, String> 对象
Map<String, List<String>> result = list.stream()
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.groupingBy(Map.Entry::getKey,
Collectors.mapping(Map.Entry::getValue, Collectors.toList())));
```
上述代码中,先将List中的每个Map对象转换为一个包含所有键值对的Stream对象,然后使用flatMap方法将所有键值对合并为一个Stream对象。接着使用Collectors.groupingBy方法按键进行分组,使用Collectors.mapping方法提取每个键对应的值,并将其转换为List对象。
这样就可以将List<Map<String, String>>对象转换为Map<String,List<String>>对象了。
阅读全文