Wednesday, October 15, 2025
HomeLanguagesJavaJava.util.function.BiPredicate interface in Java with Examples

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

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)
  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)
  3. 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() 
  4. or(): This function applies the OR 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> or(BiPredicate<? super T, ? super V> other)
  5. 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

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11891 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11952 POSTS0 COMMENTS
Shaida Kate Naidoo
6851 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS