Last Updated : 12 Jul, 2025
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:
boolean test(T obj, V obj1)
default BiPredicate<T, V> and(BiPredicate<? super T, ? super V> other)
default BiPredicate<T, V> negate()
default BiPredicate<T, V> or(BiPredicate<? super T, ? super V> other)
Example:
// 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"));
}
}
true false true true
Reference: https://docs.oracle.com/javase/8/docs/api/java/util/function/BiPredicate.html
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4