Skip to content
Related Articles

Related Articles

Improve Article

Java.util.function.BiPredicate interface in Java with Examples

  • Last Updated : 13 Jul, 2021

The BiPredicate<T, V> interface was introduced in JDK 8. This interface is packaged in java.util.function package. It operates on two objects and returns a predicate value based on that condition. It is a functional interface and thus can be used in lambda expression also.
 

public interface BiPredicate<T, V>

Methods 
 

  1. test(): This function evaluates a conditional check on the two objects, and returns a boolean value denoting the outcome. 
     
boolean test(T obj, V obj1)
  1.  
  2. and(): This function applies the AND operation on the current object and the object received as argument, and returns the newly formed predicate. This method has a default implementation. 
     
default BiPredicate<T, V> and(BiPredicate<? super T, ? super V> other)
  1.  
  2. negate(): This function returns the inverse of the current predicate i.e reverses the test condition. This method has a default implementation. 
     
default BiPredicate<T, V> negate() 
  1.  
  2. or(): This function applies the OR operation on the current object and the object recieved as argument, and returns the newly formed predicate. This method has a default implementation. 
     
default BiPredicate<T, V> or(BiPredicate<? super T, ? super V> other)
  1.  

Example: 
 

Java




// Java example to demonstrate BiPredicate interface
 
import java.util.function.BiPredicate;
 
public class BiPredicateDemo {
    public static void main(String[] args)
    {
        // Simple predicate for checking equality
        BiPredicate<Integer, String> biPredicate = (n, s) ->
        {
            if (n == Integer.parseInt(s))
                return true;
            return false;
        };
 
        System.out.println(biPredicate.test(2, "2"));
 
        // Predicate for checking greater than
        BiPredicate<Integer, String> biPredicate1 = (n, s) ->
        {
            if (n > Integer.parseInt(s))
                return true;
            return false;
        };
 
        // ANDing the two predicates
        BiPredicate<Integer, String> biPredicate2
            = biPredicate.and(biPredicate1);
        System.out.println(biPredicate2.test(2, "3"));
 
        // ORing the two predicates
        biPredicate2 = biPredicate.or(biPredicate1);
        System.out.println(biPredicate2.test(3, "2"));
 
        // Negating the predicate
        biPredicate2 = biPredicate.negate();
        System.out.println(biPredicate2.test(3, "2"));
    }
}
Output: 
true
false
true
true

 

Reference: https://docs.oracle.com/javase/8/docs/api/java/util/function/BiPredicate.html
 

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.




My Personal Notes arrow_drop_up
Recommended Articles
Page :