Map<> 转为List<>
时间: 2023-10-14 09:13:19 浏览: 75
可以通过 Map.entrySet() 方法获取 Map 中所有的键值对,然后将其转换为 List。示例代码如下:
```
Map<String, Integer> map = new HashMap<>();
map.put("key1", 1);
map.put("key2", 2);
map.put("key3", 3);
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
// 遍历 List
for (Map.Entry<String, Integer> entry : list) {
String key = entry.getKey();
int value = entry.getValue();
System.out.println(key + " : " + value);
}
```
在上述代码中,我们先创建了一个 Map 对象,并向其中添加了三个键值对。然后使用 Map.entrySet() 方法获取 Map 中所有的键值对,并将其转换为 List。最后,我们遍历 List,获取每个键值对的键和值,并输出到控制台。
相关问题
List<Map>转为Map<String, List<Map<String, Object>>>
可以通过循环遍历List<Map>,将其中的每个Map的key和value拆分,然后构建新的Map<String, List<Map<String, Object>>>。
以下是示例代码:
```java
List<Map> list = new ArrayList<>(); // 原始的List<Map>
Map<String, List<Map<String, Object>>> resultMap = new HashMap<>(); // 转换后的Map
for (Map<String, Object> map : list) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (!resultMap.containsKey(key)) {
resultMap.put(key, new ArrayList<>());
}
Map<String, Object> newMap = new HashMap<>();
newMap.put(key, value);
resultMap.get(key).add(newMap);
}
}
```
这样就将原始的List<Map>转换为了Map<String, List<Map<String, Object>>>。注意,这里假设原始的List<Map>中的每个Map只有一个键值对,且键值对的值类型为Object,需要根据实际情况进行调整。
List<map> 转为 List<Map<String, Object>>
可以使用Java 8的新特性将 List<map> 转为 List<Map<String, Object>> ,具体代码如下:
```
List<Map<String, Object>> result = inputList.stream()
.map(map -> {
Map<String, Object> resultMap = new HashMap<>();
map.forEach((key, value) -> resultMap.put(key.toString(), value));
return resultMap;
})
.collect(Collectors.toList());
```
阅读全文