List<map>转成list
时间: 2023-12-09 10:02:54 浏览: 60
假设你的 `List<Map>` 是这样的:
```
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "Alice");
map1.put("age", 25);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "Bob");
map2.put("age", 30);
list.add(map2);
```
你可以使用 `stream()` 方法将其转换为 `List`,如下所示:
```
List<Object> result = list.stream().flatMap(m -> m.values().stream()).collect(Collectors.toList());
```
这里的 `flatMap()` 方法将每个 `Map` 对象的值转换为一个 `Stream`,然后将所有的 `Stream` 合并成一个 `Stream`。最后使用 `collect()` 方法将所有的值收集到一个新的 `List` 中。这样,你就可以得到一个只包含所有值的 `List`。
相关问题
java List<Map<String,String>> 转成 List<Map>
你可以使用Java的原生类型推断来实现List<Map<String, String>>转为List<Map>。在Java 7之后,你可以使用菱形语法来简化泛型类型的定义。下面是一个示例代码:
```java
List<Map<String, String>> originalList = new ArrayList<>();
// 假设originalList已经包含了一些数据
// 使用原生类型推断,将List<Map<String, String>>转为List<Map>
List<Map> newList = new ArrayList<>(originalList);
```
请注意,这种转换会导致Map中的值丢失其具体的数据类型,因为Map的值类型被擦除为Object。如果你需要保留具体的数据类型,可以考虑使用更具体的泛型类型,如List<Map<String, Object>>来代替List<Map>。
List<Map<String, Object>>转List<Map>
List<Map<String, Object>>转List<Map>的方法可以通过遍历原始列表,将每个Map对象转换为不带泛型的Map对象来实现。下面是一个示例代码:
```java
List<Map<String, Object>> originalList = new ArrayList<>();
// 假设originalList已经被初始化并填充了数据
List<Map> convertedList = new ArrayList<>();
for (Map<String, Object> map : originalList) {
Map convertedMap = new HashMap();
convertedMap.putAll(map);
convertedList.add(convertedMap);
}
```
在上面的代码中,我们首先创建了一个空的List<Map>对象 `convertedList`,然后使用for循环遍历原始列表 `originalList` 中的每个Map对象。对于每个Map对象,我们创建一个新的不带泛型的Map对象 `convertedMap`,并使用 `putAll()` 方法将原始Map对象中的所有键值对复制到新的Map对象中。最后,将新的Map对象添加到 `convertedList` 中。
这样就完成了 List<Map<String, Object>> 转 List<Map> 的过程。
阅读全文