【发布时间】:2017-10-03 10:50:33
【问题描述】:
当我想过滤 Speedment 流时,如何使用 OR?如何与来自 NY、NJ 或 PA 的用户一起编写流?
users.stream()
.filter(User.STATE.equals("NY"))
.collect(Collectors.toList())
这会生成仅来自纽约的用户列表...
【问题讨论】:
当我想过滤 Speedment 流时,如何使用 OR?如何与来自 NY、NJ 或 PA 的用户一起编写流?
users.stream()
.filter(User.STATE.equals("NY"))
.collect(Collectors.toList())
这会生成仅来自纽约的用户列表...
【问题讨论】:
在这种特殊情况下,至少有两种方法:
a) 使用Predicate::or
b) 使用in 谓词
users.stream()
.filter(
User.STATE.equals("NY")
.or(User.STATE.equals("NJ"))
.or(User.STATE.equals("PA"))
)
.collect(Collectors.toList());
users.stream()
.filter(User.STATE.in("NY", "NJ", "PA"))
.collect(Collectors.toList());
我会使用后一种解决方案,我认为它看起来更好。
【讨论】: