diff --git a/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java b/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java new file mode 100644 index 0000000000..845908636f --- /dev/null +++ b/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java @@ -0,0 +1,31 @@ +package com.baeldung.predicate.not; + +import java.util.List; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +public class FindPeople { + public static void main(String[] args) { + List people = List.of( + new Person(1), + new Person(18), + new Person(2) + ); + + people.stream() + .filter(Person::isAdult) + .collect(Collectors.toList()); + + people.stream() + .filter(person -> !person.isAdult()) + .collect(Collectors.toList()); + + people.stream() + .filter(Person::isNotAdult) + .collect(Collectors.toList()); + + people.stream() + .filter(Predicate.not(Person::isAdult)) + .collect(Collectors.toList()); + } +} diff --git a/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/Person.java b/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/Person.java new file mode 100644 index 0000000000..3c93e08194 --- /dev/null +++ b/core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/Person.java @@ -0,0 +1,19 @@ +package com.baeldung.predicate.not; + +public class Person { + private static final int ADULT_AGE = 18; + + private int age; + + public Person(int age) { + this.age = age; + } + + public boolean isAdult() { + return age >= ADULT_AGE; + } + + public boolean isNotAdult() { + return !isAdult(); + } +}