当我想过滤Speedment流时,如何使用OR?如何使用来自NY,NJ或PA的用户编写流?
users.stream()
.filter(User.STATE.equals("NY"))
.collect(Collectors.toList())
这会生成仅来自纽约的用户列表...
答案 0 :(得分:1)
在这种特殊情况下,至少有两种方法:
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());
我会使用后者的解决方案,在我看来看起来更好。