Я переезжаю на использование Java11. Изучая новый метод Predicate.not , я нашел свой текущий код, чтобы найти только семейство кошек как:
List<String> animals = List.of("cat", "leopard", "dog", "lion", "horse");
Predicate<String> cats = a -> !a.equals("dog") && !a.equals("horse");
Set<String> filterCat = animals.stream().filter(cats).collect(Collectors.toSet());
System.out.println(filterCat);
вывод:
леопард, кот, лев
Теперь я пытаюсь использовать новый метод, и вывод идет неправильно. Как мне это исправить? Что я сделал не так?
Мой более поздний код:
Predicate<String> updatedCatFilter = Predicate.not(a -> a.equals("dog") && a.equals("horse"));
Set<String> catFamily = animals.stream().filter(updatedCatFilter).collect(Collectors.toSet());
System.out.println(filterCat);
Но теперь выводится весь мой список.
лошадь, леопард, кошка, собака, лев