Friday, September 5, 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
32265 POSTS0 COMMENTS
Milvus
81 POSTS0 COMMENTS
Nango Kala
6635 POSTS0 COMMENTS
Nicole Veronica
11801 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11864 POSTS0 COMMENTS
Shaida Kate Naidoo
6752 POSTS0 COMMENTS
Ted Musemwa
7026 POSTS0 COMMENTS
Thapelo Manthata
6703 POSTS0 COMMENTS
Umr Jansen
6719 POSTS0 COMMENTS