我不想使用 foreach 和循环。我想使用 Java 8 中的流来查找 List 内的 Map 中的值
List<Map<String, Boolean>> types = ...
map.stream().filter(...
Run Code Online (Sandbox Code Playgroud)
问题是在过滤器中我无法按键/值对进行搜索。
我想获取 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
Run Code Online (Sandbox Code Playgroud)
.map(Map.Entry::getKey)如果您希望最终得到键/值对列表,则可以将其删除。