IntPredicate Interface is a part of the java.util.function package which is introduced in Java 8. It is an in-built Functional Interface. This function expects one int-valued argument as input and produces a boolean value as an output. As it is a functional interface, it can be used assignment target for a lambda expression or method reference. In this post, we are going to see several implementations of IntPredicate Interface by using different examples.

IntPredicate Interface in Java 8 with Examples...!!! Share on X
Look at IntPredicate Javadoc description below:

IntPredicate Interface contains 4 methods:
-
test
-
and
-
or
-
negate
Let’s discuss these methods:
test
This method evaluates predicate on the given argument and produces a boolean result.
boolean test(int value);
and
This method returns a composed predicate that represents a short-circuiting logical AND of this predicate and another. When evaluating the composed predicate, if this predicate is false, then the other predicate is not evaluated.
default IntPredicate and(IntPredicate other) {
Objects.requireNonNull(other);
return (value) -> test(value) && other.test(value);
}
or
This method returns a composed predicate that represents a short-circuiting logical OR of this predicate and another. When evaluating the composed predicate, if this predicate is true, then the other predicate is not evaluated.
default IntPredicate or(IntPredicate other) {
Objects.requireNonNull(other);
return (value) -> test(value) || other.test(value);
}
negate
This method returns a predicate that represents the logical negation of this predicate.
default IntPredicate negate() {
return (value) -> !test(value);
}
Let’s understand above-mentioned methods through various examples:
Example 1. ‘test’ method
import java.util.function.IntPredicate;
public class IntPredicateInterfaceJava8Example1 {
public static void main(String[] args) {
System.out.println("IntPredicate Interface - Example 1");
IntPredicate intPredicateObj = i -> i == -10;
System.out.println("Are numbers matching: " + intPredicateObj.test(10));
System.out.println("Are numbers matching: " + intPredicateObj.test(-10));
}
}
Example 2. ‘and’, ‘or’ and ‘negate’ methods
import java.util.function.IntPredicate;
public class IntPredicateInterfaceJava8Example2 {
public static void main(String[] args) {
System.out.println("IntPredicate Interface - Example 2");
IntPredicate intPredicateObj1 = i -> i >= 10;
IntPredicate intPredicateObj2 = i -> i == 5;
IntPredicate intPredicateObj3 = i -> i < 70;
//and operation
System.out.println("Result 1: " + intPredicateObj1.and(intPredicateObj2).test(15));
//or operation
System.out.println("Result 2: " + intPredicateObj1.or(intPredicateObj2).or(intPredicateObj3).test(15));
//negate operation
System.out.println("Result 3: " + intPredicateObj3.negate().test(10));
}
}
Java 8 IntPredicate Interface is an absolutely useful addition as part of ‘Functional Interfaces’ and can serve a variety of purposes. It is quite powerful as it can be used as a higher-order function through lambda functions and the above examples could help you to get a better idea of how to implement it.
IntPredicate Interface in Java 8 with Examples...!!! Share on X
Do you like this Post? – then check my other helpful posts:
- Passing Function as a Parameter in another Method in Java 8
- Collection sorting using Lambda in Java 8
- Supplier Interface in Java 8 with Examples