Predicate in Java 8
The Predicate is one of the Functional Interfaces type introduced in Java 8. Generally predicate means a statement that determines if a value could be true or false.
So predicate is used to test a condition which will return a boolean value.
Syntax:
@FunctionalInterface public interface Predicate{ boolean test(T t); }
Use cases where Predicate can be used:
1) Filtering a set of objects in stream.
2) Sorting list by data validation
Example:
import java.util.function.Predicate; public class TestPredicate { public static void main(String[] args) { // Defining predicate PredicatelessThanPredicate = i -> (i < 50); // Calling Predicate defined above System.out.println("Age 10 is less than 50:" + lessThanPredicate.test(10)); } }
Using Filter example:
import java.util.List; import java.util.function.Predicate; public class TestPredicate { public static void main(String[] args) { // Defining predicate PredicateminorAgePredicate = i -> (i < 18); List allAgeList = List.of(16, 28, 49, 36, 30, 40, 89, 6, 5, 19, 45, 13); System.out.println("Age of minors are below:"); allAgeList.stream().filter(minorAgePredicate).forEach(System.out::println); } }