У меня есть List
:Как применить фильтры OR к java.util.stream?
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");
Следующий пример фильтров для "A":
mylist.stream().filter(startswith_A).forEach(mystring -> {
System.out.println("filtered : " + mystring);
});
Как я могу применить то же самое для фильтра «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");
Как я могу сделать это с 2-мя отдельными Predicate
с?
https://docs.oracle.com/javase/8/docs/api/java/util /function/Predicate.html#or-java.util.function.Predicate- –
Почему анонимная функция не соответствует вашим требованиям? mylist.stream(). filter (s -> s.startsWith ("A") || s.startsWith ("T")). forEach (System.out :: println); –