{

Java8 - java.util.function.Predicate Interface tutorials Examples


The predicate is a functional interface introduced in java8. It has only one abstract method. The predicate interface is in java. util.function package and it takes a single argument. It evaluates the predicate on the given parameter.

public interface Predicate<T> {  
 boolean test(T t)   
}  

T is input value test(T t) - Only single abstract method. return true if the given input value matches the condition, else return false

Predicate Test method example

import java.util.function.Predicate;  
  
public class PredicateDemo {  
  
 public static void main(String[] args) {  
  Predicate<Integer> predicateFunction = num -> (num > 0);  
  System.out.println(predicateFunction.test(-1));  
  System.out.println(predicateFunction.test(50));  
 }  
}  

and output of the above code is

false true  

Predicate test static method Example

import java.util.function.Predicate;  
  
public class PredicateDemo {  
 static Boolean nullCheck(Object obj) {  
  if (obj == null)  
   return true;  
  else  
   return false;  
 }  
  
 public static void main(String[] args) {  
  // Predicate<Integer> predicateFunction = num -> (num > 0)  
  Predicate<Object> predicate = PredicateDemo::nullCheck;  
  
  System.out.println(predicate.test(null));  
  System.out.println(predicate.test(50));  
  
 }  
  
}  

and output is

true  
false  

Predicate Default methods

Method

Description

and()

return the result of Short circuit logical AND operator of given input parameters

negate()

Applies logical negate of the predicate

or()

return the result of Short circuit logical OR operator of given input parameters

Default methods Usage example

import java.util.function.Predicate;  
  
public class PredicateDemo {  
  
 public static void main(String[] args) {  
        Predicate<Integer> greaterThanFifity = (i) -> i > 50;  
  
        Predicate<Integer> lowerThanHundred = (i) -> i < 100;   
        boolean output = greaterThanFifity.and(lowerThanHundred).test(55);  
        System.out.println(output);  
   
        boolean output1 = greaterThanFifity.and(lowerThanHundred).negate().test(55);  
        System.out.println(output1);  
        boolean output2 = greaterThanFifity.or(lowerThanHundred).test(55);  
        System.out.println(output1);  
 }  
  
}  

and output is

true  
false  
false  

Predicate lambda express method reference example

Example1 is an example for the usage of lambda expressions Example2 is an example of method reference. Methods are called using a double colon:: symbol.

package org.cloudhadoop.functions;  
import java.util.function.Predicate;  
public class MyPredicateExample {  
       public static Boolean isPositiveNumber(int number) {  
              return number > 0 ? true : false;  
       }  
       public static void main(String[] args) {  
                 // Example1  
              Predicate<Integer> lambdaPredicate = (n) -> MyPredicateExample.isPositiveNumber(n);  
              System.out.println(lambdaPredicate.test(45));  
                 // Example2  
              Predicate<Integer> methodRefPredicate = MyPredicateExample::isPositiveNumber;  
              System.out.println(methodRefPredicate.test(-35));  
       }  
}  

Output is

true  
false  

THE BEST NEWSLETTER ANYWHERE
Join 6,000 subscribers and get a daily digest of full stack tutorials delivered to your inbox directly.No spam ever. Unsubscribe any time.

Similar Posts
Subscribe
You'll get a notification every time a post gets published here.