【发布时间】:2018-01-01 20:53:02
【问题描述】:
我试图使用 Streams API 过滤 HashMap 中的条目,但停留在最后一个方法调用 Collectors.toMap。所以,我不知道实现 toMap 方法
public void filterStudents(Map<Integer, Student> studentsMap){
HashMap<Integer, Student> filteredStudentsMap = studentsMap.entrySet().stream().
filter(s -> s.getValue().getAddress().equalsIgnoreCase("delhi")).
collect(Collectors.toMap(k , v));
}
public class Student {
private int id;
private String firstName;
private String lastName;
private String address;
...
}
有什么建议吗?
【问题讨论】:
-
这样你就清楚了。 Collectors.toMap 中的每个参数都有一个函数,因此 k 和 v 不存在。它将是
toMap(s -> s.getKey(), s -> s.getValue()),它可以转换为方法引用,就像@Eran 的回答一样。我推荐,即使它们有点长 -
您可能想阅读这个问题以及它被标记为与stackoverflow.com/questions/1992384/…重复的问题
标签: java java-8 hashmap java-stream