public Set<Employee> getFulltimeEmployees() {
// TODO
Map<Employee,Integer> fulltimeEmployees = projects.stream().filter(p -> p.getCommittedHoursPerDay().entrySet()
.stream()
.filter(map -> map.getValue() >= 8)
.collect(Collectors.toMap(map -> map.getKey(), map -> map.getValue())));
return fulltimeEmployees.keySet();
}
过滤器如何识别地图,因为我可以访问键和值,但是在.collect(collectors.tomap())中,它不识别映射,而仅将其视为lambda grigent
这里有一对一的概念。您可以首先使用flatMap
将地图弄平,然后将
filter
步骤返回A
flatMap
。因此,Stream<Map.Entry<Employee, Integer>>
在一个filter
中运行。 您还可以在集合步骤上使用方法参考作为
Map.Entry<Employee, Integer>