在Java 8 Streams中过滤Map [英] filter Map in Java 8 Streams
本文介绍了在Java 8 Streams中过滤Map的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图使用Streams API过滤HashMap中的条目,但是卡在最后一个方法调用Collectors.toMap
中.因此,我没有实现 toMap 方法
I was trying to filter Entries in HashMap using Streams API, but stuck in last method call Collectors.toMap
. So, I don't have clue to implemement toMap method
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;
...
}
有什么建议吗?
推荐答案
只需从通过过滤器的条目的键和值中生成输出Map
:
Just generate the output Map
out of the key and value of the entries that pass your filter:
public void filterStudents(Map<Integer, Student> studentsMap){
Map<Integer, Student> filteredStudentsMap =
studentsMap.entrySet()
.stream()
.filter(s -> s.getValue().getAddress().equalsIgnoreCase("delhi"))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
}
这篇关于在Java 8 Streams中过滤Map的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文