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:
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.
Comments
Post a Comment
Leave Comment