list<map> 使用stream查询指定的值
时间: 2023-06-12 14:05:17 浏览: 1236
可以使用 Java 8 的 Stream API 配合 lambda 表达式来查询 list 中的 map 对象的指定值。示例代码如下:
假设 list 是一个 List<Map<String, Object>> 类型的对象,其中每个 Map 对象都包含 key1 和 key2 两个键。现在我们要查询 list 中所有 key1 值为 "value1" 的 map 对象的 key2 值。
```java
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("key1", "value1");
map1.put("key2", "result1");
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("key1", "value2");
map2.put("key2", "result2");
list.add(map2);
List<Object> result = list.stream()
.filter(map -> map.get("key1").equals("value1"))
.map(map -> map.get("key2"))
.collect(Collectors.toList());
System.out.println(result); // 输出 [result1]
```
这里我们使用了 filter 方法过滤出 key1 值为 "value1" 的 map 对象,然后使用 map 方法将这些 map 对象中的 key2 值提取出来,最后使用 collect 方法将所有结果收集到一个列表中。
阅读全文