如何对java.util.stream应用或筛选?
我有一个如何对java.util.stream应用或筛选?,java,java-8,java-stream,Java,Java 8,Java Stream,我有一个列表: List<String> mylist=Arrays.asList("Abla","Tbla","Cbla"); 如何将其应用于过滤器“a”或“T” 比如: mylist.stream().filter(startswith_A || startswith_T).forEach(mystring -> { System.out.println("filtered : " + mystring); }); 我不想创建一个新的谓词,如: Predicat
列表
:
List<String> mylist=Arrays.asList("Abla","Tbla","Cbla");
如何将其应用于过滤器“a”或“T”
比如:
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");
谓词startswith_A_或_T=s->s.startswith(“T”)| s.startswith(“A”);
如何使用两个独立的谓词来实现这一点?您可以在两个谓词之间使用:
mylist.stream()
.filter(startswith_A.or(startswith_T))
.forEach(mystring -> { System.out.println("filtered : " + mystring); });
结果:
filtered : Abla
filtered : Tbla
为什么匿名函数不符合您的要求?mylist.stream().filter(s->s.startsWith(“A”)| | s.startsWith(“T”)).forEach(System.out::println);
mylist.stream()
.filter(startswith_A.or(startswith_T))
.forEach(mystring -> { System.out.println("filtered : " + mystring); });
filtered : Abla
filtered : Tbla