From 7f275f9b38f25b0a5b80c7315363c4addd45e190 Mon Sep 17 00:00:00 2001 From: dupirefr Date: Wed, 15 May 2019 08:19:30 +0200 Subject: [PATCH] [BAEL-2932] Using Predicate.not to negate a method reference --- .../baeldung/predicate/not/FindPeople.java | 31 +++++++++++++++++++ .../com/baeldung/predicate/not/Person.java | 19 ++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/FindPeople.java create mode 100644 core-java-modules/core-java-11/src/main/java/com/baeldung/predicate/not/Person.java 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(); + } +}