1. Introduction
In this short tutorial, we’ll discuss the not()
method of Predicate
Interface. This method was added in Java 11.
2. Syntax
static<T> Predicate<T> not(Predicate<? super T> target)
: This method returns a predicate that is the negation of the supplied predicate. This is accomplished by returning result of the calling target.negate()
.
3. Example
In this example, we’ll filter even and odd numbers from a list. We’ll use the not()
method of Predicate interface.
import java.util.Arrays; import java.util.List; import java.util.function.Predicate; import java.util.stream.Collectors; public class PredicateNotExample { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // creating a predicate to check even numbers Predicate<Integer> even = i -> i % 2 == 0; // creating a predicate object which // is negation os supplied predicate Predicate<Integer> odd = Predicate.not(even); // filtering the even number using even predicate List<Integer> evenNumbers = list.stream().filter(even).collect( Collectors.toList()); // filtering the odd number using odd predicate List<Integer> oddNumbers = list.stream().filter(odd).collect( Collectors.toList()); // Print the Lists System.out.println(evenNumbers); System.out.println(oddNumbers); } }
Output
[2, 4, 6, 8, 10]
[1, 3, 5, 7, 9]
4. Conclusion
In this short tutorial we discussed the Predicate.not()
method. This is a clean way of negating a Predicate and helps in writing more readable code.