将 List<Map<String, Object>>转换成 map的key的List集合
时间: 2023-10-14 11:24:43 浏览: 88
可以使用 Java 8 的流式操作和 Lambda 表达式来实现这个转换过程。具体的代码如下:
```java
List<Map<String, Object>> list = new ArrayList<>();
// 添加一些测试数据
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "张三");
map1.put("age", 18);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "李四");
map2.put("age", 20);
list.add(map2);
// 使用流式操作转换 List<Map<String, Object>> 为 map 的 key 集合
List<String> keyList = list.stream()
.flatMap(map -> map.keySet().stream())
.distinct()
.collect(Collectors.toList());
System.out.println(keyList); // 输出结果:[age, name]
```
上述代码中,我们首先创建了一个 List<Map<String, Object>>,并向其中添加了两个包含 name 和 age 属性的 Map。然后,我们使用流式操作和 Lambda 表达式将 List<Map<String, Object>> 转换为了 map 的 key 集合,最后将结果保存在了 keyList 中。在这个过程中,我们首先使用 flatMap 操作将每个 Map 的 key 转换成一个流,然后使用 distinct 操作去重,最后使用 collect 操作将结果收集到一个 List 中。
阅读全文