In this tutorial, we will learn how to use Java 8 BiFunction interface with an example.
The BiFunction interface is a functional interface introduced in Java 8 and we use the lambda expression to implement Java 8 BiFunction 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 BiFunction Interface Overview
This interface represents a function that takes two arguments of different types and produces a result of another type.
This how the interface is defined:
@FunctionalInterface
public interface BiFunction<T, U, R> {
R apply(T t, U u); // Other default and static methods
// ...
}
Java 8 - BiFunction Example #1
Note the comments are self-descriptive.
package com.javaguides.java.functionalinterfaces;
import java.util.function.BiFunction;
import java.util.function.Function;
public class BiFunctionDemo {
public static void main(String[] args) {
// Here's an example using an anonymous class:
BiFunction < Integer, Integer, Integer > biFunctionObj = new BiFunction < Integer, Integer, Integer > () {
@Override
public Integer apply(Integer t, Integer u) {
return (t + u);
}
};
System.out.println(biFunctionObj.apply(10, 20));
// And with a lambda expression:
BiFunction < Integer, Integer, Integer > biFunction = (t, u) -> (t + u);
BiFunction < Integer, Integer, Integer > substraction = (t, u) -> (t - u);
BiFunction < Integer, Integer, Integer > multiplication = (t, u) -> (t * u);
BiFunction < Integer, Integer, Integer > division = (t, u) -> (t / u);
Function < Integer, Integer > function = (number) -> number * number;
Integer integer = biFunction.andThen(function).apply(10, 20);
System.out.println(integer);
System.out.println(biFunction.apply(10, 20));
System.out.println(substraction.apply(200, 100));
System.out.println(multiplication.apply(200, 100));
System.out.println(division.apply(200, 100));
}
}
Output:
30
900
30
100
20000
2
Java 8 - BiFunction Example #2
The following example shows how to use the default method andThen() of the BiFunction interface with a lambda expression.
package com.javaguides.java.functionalinterfaces;
import java.util.function.BiFunction;
import java.util.function.Function;
public class BiFunctionDemo {
public static void main(String[] args) {
BiFunction < Integer, Integer, Integer > function1 = (a, b) -> a + b;
Function < Integer, Integer > function2 = (n) -> n * n;
//Using andThen()
System.out.println(function1.andThen(function2).apply(2, 3));
System.out.println(function1.andThen(function2).apply(4, 5));
}
}
Output:
25
81
Comments
Post a Comment
Leave Comment