Java 8 BiPredicate Example

In this tutorial, we will learn how to use Java 8 BiPredicate interface with an example.
The BiPredicate interface is a functional interface introduced in Java 8 and we use the lambda expression to implement Java 8 BiPredicate interface.
Learn functional interfaces at https://www.javaguides.net/2018/07/java-8-functional-interfaces.html
Learn lambda expressions at https://www.javaguides.net/2018/07/java-8-lambda-expressions.html.

Video

Java 8 BiPredicate Interface Overview

This interface represents a predicate that takes two arguments.
This how the interface is defined:
@FunctionalInterface 
public interface BiPredicate<T, U> {
     boolean test(T t, U u);
     // Default methods are defined also
}

Java 8 - BiPredicate Example #1

Note the comments are self-descriptive.
package com.javaguides.java.functionalinterfaces;

import java.util.function.BiPredicate;

public class BiPredicateDemo {
    public static void main(String[] args) {

        // anonymous class implements BiPredicate interface
        BiPredicate < String, String > predicateObject = new BiPredicate < String, String > () {

            @Override
            public boolean test(String s1, String s2) {
                return s1.equals(s2);
            }
        };
        System.out.println(predicateObject.test("Ramesh", "Ramesh"));

        // Lambda expression implementation
        BiPredicate < String, String > biPredicate = (s1, s2) -> s1.equals(s2);
        System.out.println(biPredicate.test("ramesh", "ramesh"));
        System.out.println(biPredicate.test("java guides", "Java Guides"));
    }
}
Output:
true
true
false

Java 8 - BiPredicate.and(), BiPredicate.or() Method Example #2

package com.javaguides.java.functionalinterfaces;

import java.util.function.BiPredicate;

public class BiPredicateDemo {
    public static void main(String[] args) {

        // Demo for BiPredicate.and() and BiPredicate.or() methods 
        BiPredicate < Integer, Integer > biPredicate2 = (x, y) -> x > y;
        BiPredicate < Integer, Integer > biPredicate3 = (x, y) -> x == y;

        // usage of and() method - and condition
        boolean result = biPredicate2.and(biPredicate3).test(20, 10);
        System.out.println(result);

        // usage of or() method - or condition
        boolean result1 = biPredicate2.or(biPredicate3).test(20, 10);
        System.out.println(result1);

    }
}
Output:
false
true

Related Java 8 Tutorials:

Comments