List<Map<String,Object>> 怎么转为List<Map>
时间: 2024-05-27 14:06:03 浏览: 167
List<Map<String,Object>> 是一个泛型为 Map<String,Object> 的 List 类型,其中 Map<String,Object> 表示一个键值对集合,键为 String 类型,值为 Object 类型。如果要将 List<Map<String,Object>> 转换为 List<Map>,可以使用 Java 8 中的流(Stream)和 Lambda 表达式进行转换。可以使用以下代码实现:
```
List<Map<String,Object>> list = new ArrayList<>();
List<Map> newList = list.stream().map(map -> {
Map newMap = new HashMap();
newMap.putAll(map);
return newMap;
}).collect(Collectors.toList());
```
以上代码首先将 List<Map<String,Object>> 中的每个元素通过 map 方法转换为一个新的 Map 对象,然后通过 collect 方法将所有新的 Map 对象收集到一个新的 List<Map> 中。其中,HashMap是Map接口的一个实现类,可以用来存储键值对。这里使用newMap.putAll(map)方法将map对象中的所有键值对全部复制到newMap对象中。
相关问题
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());
```
阅读全文