我有List
:
List<String> mylist=Arrays.asList("Abla","Tbla","Cbla");
我为我的流准备了2个过滤器:
Predicate<String> startswith_A= s-> s.startsWith("A");
Predicate<String> startswith_T= s-> s.startsWith("T");
以下示例过滤器&#34; A&#34;:
mylist.stream().filter(startswith_A).forEach(mystring -> {
System.out.println("filtered : " + mystring);
});
如何将相同的内容应用于过滤器&#34; A&#34;或&#34; T&#34;?
类似的东西:
mylist.stream().filter(startswith_A || startswith_T).forEach(mystring -> {
System.out.println("filtered : " + mystring);
});
我不想创建一个新的谓词,如:
Predicate<String> startswith_A_or_T= s-> s.startsWith("T") || s.startsWith("A");
如何使用2个单独的Predicate
来完成此操作?
答案 0 :(得分:8)
您只需在Predicates
:
.or
即可
mylist.stream()
.filter(startswith_A.or(startswith_T))
.forEach(mystring -> { System.out.println("filtered : " + mystring); });
结果:
filtered : Abla
filtered : Tbla