【发布时间】:2020-01-14 02:59:54
【问题描述】:
基于以下问题:filter Map in Java 8 Streams
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));
}
这会过滤离开dehli 的学生。我如何过滤离开dehli、amsterdam 或new york 的学生?
有没有比将原始地图过滤三倍并将三个输出合并在一起更好的方法?
【问题讨论】:
-
->之后的部分可以用任何你想要的 Java 表达式。所以编写一个任意复杂的语句来检查地址是否是任何所需的值并在这种情况下返回true。
标签: java java-8 java-stream filtering predicate