怎么在List<HashMap<String, Object>>中map中的map找出包含我想要关键字的List<HashMap<String, Object>>
时间: 2023-11-11 21:11:02 浏览: 89
嵌套Map或者List获取key、value值
3星 · 编辑精心推荐
你可以使用Java 8的Stream API来实现这个功能。首先,你需要将List<HashMap<String, Object>>转换为Stream对象,然后使用flatMap方法将每个HashMap中的值转换为一个新的Stream对象,最后使用filter方法过滤符合条件的HashMap并将结果收集到一个新的List中。
以下是一个示例代码:
```java
List<HashMap<String, Object>> list = new ArrayList<>();
// 假设 list 中有多个 map 对象
String keyword = "test"; // 你想要查找的关键字
List<HashMap<String, Object>> result = list.stream() // 将 list 转换为 Stream
.flatMap(map -> map.values().stream()) // 将每个 map 的值转换为 Stream
.filter(value -> value instanceof HashMap) // 过滤掉不是 map 的值
.map(value -> (HashMap<String, Object>) value) // 将值转换为 HashMap
.filter(map -> map.containsKey(keyword)) // 过滤掉不包含关键字的 map
.collect(Collectors.toList()); // 将结果收集到一个新的 List 中
```
这样就可以找出包含指定关键字的 List<HashMap<String, Object>> 了。
阅读全文