Java Predicate or()

In this guide, you will learn about the Predicate or() method in Java programming and how to use it with an example.

1. Predicate or() Method Overview

Definition:

The Predicate.or() is a default method available in the Predicate interface. It is used to combine two predicates using a logical OR operation. The resultant predicate evaluates to true if either the original or the specified predicate evaluates to true.

Syntax:

default Predicate<T> or(Predicate<? super T> other)

Parameters:

- other: A predicate which will be logically OR-ed with the current predicate.

Key Points:

- The or() method allows the combination of multiple predicate conditions with an OR operation.

- It is useful when a data set needs to be filtered based on one of several conditions.

- If either the current predicate or the specified predicate evaluates to true, the composite predicate will also evaluate to true.

2. Predicate or() Method Example

import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

public class PredicateOrExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Anna", "Aria");

        // Define a Predicate to test if a name starts with the letter 'A'
        Predicate<String> startsWithA = name -> name.startsWith("A");
        // Define a Predicate to test if a name length is exactly 3
        Predicate<String> lengthIs3 = name -> name.length() == 3;

        // Combine the two predicates using or()
        Predicate<String> combinedPredicate = startsWithA.or(lengthIs3);

        for (String name : names) {
            if (combinedPredicate.test(name)) {
                System.out.println(name);
            }
        }
    }
}

Output:

Alice
Bob
Anna
Aria

Explanation:

In the provided example, we first define two separate predicates - one to check if a name starts with the letter 'A' and another to check if the length of the name is exactly 3. 

Using the or() method, these two predicates are combined to form a composite predicate. As a result, the names "Alice", "Bob", "Anna", and "Aria" from the list are printed, as they satisfy at least one of the conditions.

Comments