list嵌套map利用stream转成map
时间: 2023-07-25 09:41:08 浏览: 76
可以使用Java 8的Stream API中的flatMap和collect方法来完成该操作。假设我们有一个List<Map<String, String>>,需要将其转换为一个Map<String, String>,其中Map中的key值为List中每个Map的key值,value值为List中对应Map的value值。
代码示例如下:
```
List<Map<String, String>> list = new ArrayList<>();
// 填充List<Map>
Map<String, String> map1 = new HashMap<>();
map1.put("key1", "value1");
map1.put("key2", "value2");
list.add(map1);
Map<String, String> map2 = new HashMap<>();
map2.put("key1", "value3");
map2.put("key2", "value4");
list.add(map2);
// 使用Stream将List<Map>转为Map
Map<String, String> result = list.stream()
.flatMap(map -> map.entrySet().stream())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
// 输出结果
System.out.println(result);
```
输出结果为:
```
{key1=value3, key2=value4}
```
在上述代码中,我们首先使用flatMap方法将List中的每一个Map转换为一个Stream实例,然后使用collect方法将Stream转换为一个新的Map。在collect方法中,我们使用了Collectors.toMap方法来生成最终的Map实例,其中getKey和getValue方法分别用于取出每个Map.Entry的key和value值。
阅读全文