我不想使用 foreach 和循环。我想在 Java 8 中使用流在 List 中的 Map 中查找值
List<Map<String, Boolean>> types = ...
map.stream().filter(...
问题是在过滤器中我无法通过键/值对进行搜索。
I want to get all elements with boolean = true
我做错了什么?
最佳答案
流过条目集:
types.stream() // stream of maps
.flatMap(map -> map.entrySet().stream()) // flat map to stream of map entries
.filter(Map.Entry::getValue) // filter for value == true
.map(Map.Entry::getKey) // get the key
.collect(Collectors.toList()); // collect
如果您希望得到一个键/值对列表,您可以删除 .map(Map.Entry::getKey)
。
关于Java 8 流从 List 中的 Map 读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50327693/