list嵌套map利用stream转换成map指定map的value变成map的key
时间: 2023-07-31 10:11:53 浏览: 109
可以使用以下代码实现:
```java
List<Map<String, String>> list = new ArrayList<>();
// 添加数据到list中
String targetKey = "targetKey"; // 指定要转换的map的key
Map<String, Map<String, String>> result = list.stream()
.collect(Collectors.toMap(
map -> map.get(targetKey), // 将指定key的value作为新的key
map -> {
map.remove(targetKey); // 删除指定key
return map;
}
));
```
上述代码中,首先使用`stream()`方法将list转换成一个流,然后使用`collect()`方法将stream中的元素收集到一个新的map中。在收集的过程中,使用lambda表达式将指定key的value作为新的key,并将原来的map对象作为新的value,最后返回一个新的map对象。在返回新的map对象之前,需要先将原来的map对象中的指定key删除。
相关问题
list嵌套map利用stream将指定map的value变成map的key
可以使用以下代码实现:
```java
List<Map<String, String>> list = new ArrayList<>();
// 添加数据到list中
String targetKey = "targetKey"; // 指定要转换的map的key
List<Map<String, String>> result = list.stream()
.map(map -> {
String targetValue = map.get(targetKey);
map.remove(targetKey);
map.put(targetValue, targetValue);
return map;
})
.collect(Collectors.toList());
```
上述代码中,首先使用`stream()`方法将list转换成一个流,然后使用`map()`方法,将每个map对象进行转换。在转换的过程中,首先获取指定key的value值,然后将该key从map中删除,并将该value作为新的key和value添加到map中。最后使用`collect()`方法将转换后的map对象收集到一个新的list中并返回。
list嵌套map利用stream转成map
可以使用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值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)