Learnitweb

BiFunction interface in Java

BiFunction interface was introduced in Java 8 and is available in java.util.function package. BiFunction represents a function that accepts two arguments and produces a result.

BiFunction is similar to Function interface with the difference that BiFunction accepts two arguments whereas Function arguments accepts one argument.

Methods in BiFunction interface

default<V> BiFunction<T,U,V> andThen(Function<? super R,? extends V> after)This method returns a composed function that first applies this function to its input, and then after function is applied to the result.
R apply(T t, U u)Applies this function to the given arguments.

BiFunction example 1

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import java.util.function.BiFunction;
public class BiFunctionExample {
public static void main(String[] args) {
//BiFunction to calculate sum of two numbers
BiFunction<Integer, Integer, Integer> biFunctionSum = (x, y) -> x + y;
//BiFunction to calculate product of two numbers
BiFunction<Integer, Integer, Integer> biFunctionProduct = (x, y) -> x * y;
System.out.println("biFunctionSum result " + biFunctionSum.apply(2, 3));
System.out.println("biFunctionProduct result " + biFunctionProduct.apply(2, 3));
}
}
import java.util.function.BiFunction; public class BiFunctionExample { public static void main(String[] args) { //BiFunction to calculate sum of two numbers BiFunction<Integer, Integer, Integer> biFunctionSum = (x, y) -> x + y; //BiFunction to calculate product of two numbers BiFunction<Integer, Integer, Integer> biFunctionProduct = (x, y) -> x * y; System.out.println("biFunctionSum result " + biFunctionSum.apply(2, 3)); System.out.println("biFunctionProduct result " + biFunctionProduct.apply(2, 3)); } }
import java.util.function.BiFunction;

public class BiFunctionExample {
	public static void main(String[] args) {
		//BiFunction to calculate sum of two numbers
		BiFunction<Integer, Integer, Integer> biFunctionSum = (x, y) -> x + y;
		
		//BiFunction to calculate product of two numbers
		BiFunction<Integer, Integer, Integer> biFunctionProduct = (x, y) -> x * y;

		System.out.println("biFunctionSum result " + biFunctionSum.apply(2, 3));
		System.out.println("biFunctionProduct result " + biFunctionProduct.apply(2, 3));
		
	}
}

Output

biFunctionSum result 5
biFunctionProduct result 6

BiFunction andThen() method example

In this example, we’ll first use BiFunction operation to calculate sum to two number and then double the result using andThen() method.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import java.util.function.BiFunction;
import java.util.function.Function;
public class BiFunctionExample {
public static void main(String[] args) {
//BiFunction to calculate sum of two numbers
BiFunction<Integer, Integer, Integer> biFunctionSum = (x, y) -> x + y;
//Function takes a number and multiplies is by 2
Function<Integer, Integer> biFunctionDouble = (x) -> x * 2;
// Example of andThen() method
//First biFunctionSum result is calculated (2+3)
//and then biFunctionDouble operation is performed (5*2)
Integer result = biFunctionSum.andThen(biFunctionDouble).apply(2,3);
System.out.println("result: " + result);
}
}
import java.util.function.BiFunction; import java.util.function.Function; public class BiFunctionExample { public static void main(String[] args) { //BiFunction to calculate sum of two numbers BiFunction<Integer, Integer, Integer> biFunctionSum = (x, y) -> x + y; //Function takes a number and multiplies is by 2 Function<Integer, Integer> biFunctionDouble = (x) -> x * 2; // Example of andThen() method //First biFunctionSum result is calculated (2+3) //and then biFunctionDouble operation is performed (5*2) Integer result = biFunctionSum.andThen(biFunctionDouble).apply(2,3); System.out.println("result: " + result); } }
import java.util.function.BiFunction;
import java.util.function.Function;

public class BiFunctionExample {
	public static void main(String[] args) {
		//BiFunction to calculate sum of two numbers
		BiFunction<Integer, Integer, Integer> biFunctionSum = (x, y) -> x + y;
		
		//Function takes a number and multiplies is by 2
		Function<Integer, Integer> biFunctionDouble = (x) -> x * 2;

		// Example of andThen() method
		//First biFunctionSum result is calculated (2+3)
		//and then biFunctionDouble operation is performed (5*2) 
		Integer result = biFunctionSum.andThen(biFunctionDouble).apply(2,3);
		System.out.println("result: " + result);
		
	}
}

Output

result: 10