Java Predicate Interface with examples

 237 total views,  1 views today

Welcome to Java 8 Series. In this tutorial, you will learn about the Java Predicate Interface with examples.

Predicate is a Functional interface introduced as part of Java 8. It is available in java.util.function package.

What is the use of Predicate?

This interface is mainly used for evaluating an input of Object(java.lang.Object) type and returns an output of type boolean. Consider a case where we need to write a lambda expression which accepts one input of Object(java.lang.Object) type and perform an operation on the input and return a boolean.

Example

public class StaticReference {
	public static void main(String[] args) {
		Operation ops = (Integer input) -> {
			if (input == 10) {
				return true;
			} else
				return false;
		};
		boolean result = ops.validate(10);
		System.out.println(result);
	}

	interface Operation {
		boolean validate(Integer input);
	}
}

When you look at the above example, we have a function interface with an abstract method which accepts an argument of type integer return a boolean value. So a lambda expression needs a target type which needs to be a functional interface and in this example, it is Operation interface.

Instead of creating our own function interface for this scenario, Java has provided us a Predicate interface. Let now see in-depth details on Java Predicate Interface with examples.

Predicate Interface

@FunctionalInterface
public interface Predicate<T>

Predicate interface contains an operation that accepts an input argument of Object(java.lang.Object) type and returns a boolean value

It is a functional interface and the functional method istest(Object).

Method description

boolean test(T t)
t - the input argument

Example of Predicate interface using lambda

public class StaticReference {
	public static void main(String[] args) {
		Predicate<String> predicate = (String input) -> {
			if (input.equalsIgnoreCase("hello world")) {
				return true;
			} else
				return false;
		};
		boolean result = predicate.test("hello world");
		System.out.println(result);
	}
}

Example of Predicate interface using a Method reference

public class StaticReference {
	public static void main(String[] args) {
		Predicate<String> predicate = StaticReference::test;
		boolean result = predicate.test("hello world");
		System.out.println(result);
	}

	static boolean test(String input) {
		if (input.equalsIgnoreCase("hello world")) {
			return true;
		} else
			return false;
	}
}

If you want to write a lambda expression with an input argument of type Object and boolean result, please use Java Predicate interface.

References

Java 8 Predicate official documentation

Thanks for reading. Please a comment and give us a thumbs up.

Tags :

About the Author

Rajasekar

Hey There, My name is Rajasekar and I am the author of this site. I hope you are liking my tutorials and references. Programming and learning new technologies are my passion. The ultimate idea of this site is to share my knowledge(I am still a learner :)) and help you out!. Please spread your words about us (staticreference.com) and give a thumbs up :) Feel free to contact me for any queries!.