【发布时间】:2019-05-24 10:57:33
【问题描述】:
如何使用 Java 8 过滤器过滤 Map<String,Map<String,Employee>>?
只有当列表中的任何员工具有字段值 Gender = "M" 时,我才需要过滤。
输入:
Map<String,Map<String,Employee>>
输出:
Map<String,Map<String,Employee>>
过滤条件:
Employee.genter = "M"
如果过滤结果为空,我还必须返回空地图。
我尝试了以下方法,但没有按预期工作。仅当所有员工的性别为“M”时才返回。
tempCollection.entrySet().stream()
.filter(i -> i.getValue().entrySet().stream().allMatch(e-> "M".equals(e.getValue().getGender())))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
【问题讨论】:
-
返回所有性别为M的员工。
标签: java java-8 hashmap java-stream