如何对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