What is a Java predicate?

The predicate is a predefined functional interface in Java defined in the java.util.Function package. It helps with manageability of code, aids in unit-testing, and provides various handy functions.

svg viewer

Predicate methods

Let’s have a look at a few methods that the Java predicate provides.

1. test(T t)

It evaluates the predicate on the value passed to this function as the argument and then returns a boolean value. Take a look at the example below:

import java.util.function.Predicate;
class testDemo {
public static void main(String[] args)
{
Predicate<Integer> greater_than = x -> (x > 10);
// calling test method of the predicate
System.out.println(greater_than.test(11));
}
}

2. isEqual(Object t)

It returns a predicate that tests if two objects are equal. Take a look at the example below:

import java.util.function.Predicate;
class isEqualDemo {
public static void main( String args[] ) {
Predicate<String> pred = Predicate.isEqual("Educative");
System.out.println(pred.test("educative "));
}
}

3. and(Predicate P)

It returns a composed predicate that represents a logical AND of the outputs coming from both predicates. Take a look at the example below:

import java.util.function.Predicate;
class andDemo {
public static void main(String[] args)
{
Predicate<Integer> grt_10 = x -> (x > 10);
Predicate<Integer> less_100 = x -> (x < 100);
// composing two predicates using and
System.out.println(grt_10.and(less_100).test(60));
}
}

4. or(Predicate P)

It returns a composed predicate that represents a logical OR of the outputs coming from both predicates. Take a look at the example below:

import java.util.function.Predicate;
class andDemo {
public static void main(String[] args)
{
Predicate<Integer> eq_10 = x -> (x == 10);
Predicate<Integer> grt_20 = x -> (x > 20);
// composing two predicates using and
System.out.println(eq_10.or(grt_20).test(21));
}
}

5. negate()

It returns a predicate that represents the logical negation of the respective predicate. Take a look at the example below:

import java.util.function.Predicate;
class testDemo {
public static void main(String[] args)
{
Predicate<Integer> greater_than = x -> (x > 10);
// calling negate method of the predicate
System.out.println(greater_than.negate().test(11));
}
}

Free Resources

Copyright ©2024 Educative, Inc. All rights reserved