java stream list<map> 转换成map<String,list>
时间: 2023-09-24 14:04:38 浏览: 114
java利用反射,将Object和Map进行互相转换,list和map互相转换
可以使用Java Stream将List<Map<String, Object>>转换为Map<String, List<Object>>。首先,您需要使用Stream的collect方法和Collectors.groupingBy来按照指定的键进行分组。然后,您可以使用Collectors.mapping来将每个Map中的值提取出来并收集到一个List中。最后,您可以将结果收集到一个新的Map中。
以下是一个示例代码:
```java
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<>();
// 假设list中有多个Map对象
Map<String, List<Object>> resultMap = list.stream()
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.groupingBy(Map.Entry::getKey,
Collectors.mapping(Map.Entry::getValue, Collectors.toList())));
System.out.println(resultMap);
}
}
```
在这个示例中,我们使用flatMap将每个Map对象的entrySet流化,然后使用groupingBy按照键进行分组,并使用mapping将每个值收集到一个List中。最后,我们将结果收集到一个新的Map中。
请注意,这只是一个示例代码,您需要根据您的实际情况进行适当的修改。
阅读全文