search
HomeJavajavaTutorialJava Predicate

Java Predicate

Aug 30, 2024 pm 03:58 PM
java

Java Predicate is a functional interface as part of the java.util.function package which acts as a general predicate assigned as a target to the lambda expression for referencing any method or evaluating any Boolean based function with the Boolean values of true or false being assigned as a target for any lambda expression or for any method reference; hence it needs a proper evaluating condition based on the assignment of these predicates which helps them to evaluate any condition for specific implementation in terms of programming based on the use cases consisting of objects and the evaluation condition rules for implementation.

ADVERTISEMENT Popular Course in this category JAVA MASTERY - Specialization | 78 Course Series | 15 Mock Tests

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Syntax

The syntax flow for the predicate is as represented. If you traverse through the syntax, then it can be seemed that it is basically a functional interface that is used as a predicate to the method reference for verifying the testing condition of the body of the program.

package java.util.function;
import java.util.Objects;
@FunctionalInterface
public interface Predicate<t>
{
boolean test(T t);
// Body of the Program
}</t>

Explanation: While traversing through the syntax flow, it can seem that it is basically a functional interface that is used as a predicate to the method reference for verifying the testing condition of the body of the program.

  • package java.util.function: This represents the package for the function used to support the methods and functions related to the predicate function.
  • import java.util.Objects: This imported package is responsible for supporting the objects created with respect to the functional interface.
  • @FunctionalInterface: This represents the annotation with respect to the spring boot application that the application or the interface support it makes use of is a predicate which is the functional interface.
  • public interface Predicate: This represents that the interface type supporting the current class or the method is a predicate interface.
  • boolean test(T t): This method is part of the predicate interface. It is an abstract method used for defining and evaluating the significance of the lambda expression or the method reference used for assigning a target of type predicate. This method will have a Boolean as a return type. Also, T is the argument passed which is the input type for the predicate as an interface. Overall this test method will return true or false based on the satisfaction of the evaluation condition.

How does Predicate work in Java?

The predicate in java is a savior to the programmers for making and creating codes in more clean and readable formats. It helps in making the test cases formatting better and enhances the test cases. In general terms, Predicate is just a statement in a Boolean format that helps evaluate conditions with constraints. Predicates in java are basically used for implementing the functional interface with the help of assigning the predicate as a value obtained from the java.util.function.package. It makes the package method a target for passing the object of the predicate package to get the Boolean values returned with true or false for the entire method or the function of the codebase. It consists of a test method used to evaluate the entire method with references and the respective functions. In Java, there is no concept of standalone functions; therefore, what it does is defining and creating objects from these interfaces. The Iterable.filter() method can be used in cooperation with the objects of the methods. Lambda Expression with predicate also plays a good role and works easily with the predicates.

Methods in Java Predicate

There are numerous methods that make use of the Java predicate methods and are represented as follows:

  • boolean test(T t ): This method is used for evaluating the present predicate based on the passed argument t.
  • default Predicate and(Predicate super T> other): The return type of this method is the composed predicate based on the AND logical operator of short-circuiting that will predicate and then the value for the other predicate if throws the value as false then there will be no evaluation with any argument or other logical operators.
  • default Predicate negate(): Any negated value, i.e. a negative value, will get returned using the default Predicate negate method whenever defined within the package.
  • default Predicate or(Predicate super T> other): This behavior is also the same as and default predicate with a mere difference that the short-circuit will predicate and follow the value for the other predicate and is any of the value gets out to be true then only the other value will become false.
  • static Predicate isEqual(Object targetRef): This method returns a predicate value which will be used for testing whether the two objects have similar values or both have some transformed values.

Thus, using these methods with the predicate helps in evaluating any of the conditions defined with the predicate’s method types.

Examples to Implement Java Predicate

Below are examples mentioned:

Example #1

This program demonstrates the creation of a simple Predicate and then calling that Predicate method later point of time for evaluation condition with a test method as shown.

Code:

import java.util.function.Predicate;
public class Frst_Java_Predicate_Ex  {
public static void main(String[] args) {
Predicate<integer> prdc = vl -> (vl > 20);
System.out.println(prdc.test(80));
}
}</integer>

Output:

Java Predicate

Example #2

This program demonstrates the predicate value with the boolean constraint evaluating the marks of the student by using a predicate where a constraint says that if the student secures marks more than 35, then that student passes; otherwise, the student will fail if it returns the value false.

Code:

import java.util.function.Predicate;
public class Predict_Java_ex_2 {
static Boolean checkMarks(int marks){
if(marks>35)
return true;
else
return false;
}
public static void main(String[] args){
Predicate<integer> pred =  Predict_Java_ex_2::checkMarks;
boolean rslt = pred.test(15);
System.out.println("If marks is more than 35 then only the student will get pass otherwise fail." + rslt);
}
}</integer>

Output:

Java Predicate

Conclusion

Java Predicate is one of the new packages and utility being introduced in java 8, which is very flexible with the lambda expressions and helps the programmers create a neat and clean enhanced code for reference and understanding. A predicate with the values helps in the evaluation of the conditions with the return types and values.

The above is the detailed content of Java Predicate. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How to distinguish between business logic and storage logic in back-end development?How to distinguish between business logic and storage logic in back-end development?Apr 19, 2025 pm 09:18 PM

How to distinguish between business logic and storage logic in the three-layer architecture of back-end development? In back-end development, common three-tier architectures include controller, service and...

When the front-end passes data to the back-end, the back-end displays that the obtained data is NULL. How to solve it?When the front-end passes data to the back-end, the back-end displays that the obtained data is NULL. How to solve it?Apr 19, 2025 pm 09:15 PM

Problem description: During the development process using Ruoyi separate version, when the front-end passes data to the back-end, the back-end displays that the obtained data is NULL. The following are...

How to use CompletableFuture to ensure the order of batch interface requests and efficiently process the results?How to use CompletableFuture to ensure the order of batch interface requests and efficiently process the results?Apr 19, 2025 pm 09:09 PM

Efficient processing of batch interface requests: Using CompletableFuture to ensure order When processing large amounts of data, concurrent calls to third-party interfaces can significantly improve efficiency...

Java虚拟线程与线程池:为什么在虚拟线程池中复用虚拟线程会失败?Java虚拟线程与线程池:为什么在虚拟线程池中复用虚拟线程会失败?Apr 19, 2025 pm 09:06 PM

深入探讨Java虚拟线程与线程池的协同工作本文将分析Java虚拟线程在使用Executors.newVirtualThreadPerTaskExecutor()创建的...

In MyBatis, what type should be used when comparing Java types with MySQL's datetime types?In MyBatis, what type should be used when comparing Java types with MySQL's datetime types?Apr 19, 2025 pm 09:03 PM

In MyBatis, how to compare Java types with MySQL's datetime types is a problem that many developers often encounter when doing database operations. ...

How to elegantly turn asynchronous operations into synchronous operations in Java?How to elegantly turn asynchronous operations into synchronous operations in Java?Apr 19, 2025 pm 09:00 PM

The elegant implementation of Java asynchronous to synchronization In Java development, you often encounter scenarios where asynchronous operations need to be converted into synchronous operations. Recently, a developer mentioned...

In a Java single-threaded environment, will instruction reordering lead to a change in the code output order?In a Java single-threaded environment, will instruction reordering lead to a change in the code output order?Apr 19, 2025 pm 08:57 PM

An interesting and often discussed topic in Java programming is instruction reordering and its impact on program execution. The question we are going to discuss today is that Java...

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function