Breve explicación
La función BiFunction<T, U, R>
es una interfaz funcional en Java que acepta dos argumentos de tipo T
y U
, y devuelve un resultado de tipo R
. Se utiliza cuando necesitamos procesar dos valores y obtener un resultado. El método funcional de BiFunction
es apply(T t, U u)
.
Ejemplo 1: Versión completa del cuerpo de la función Lambda
Java
package org.example.tinajero;
import java.util.function.BiFunction;
public class LambdaBiFunctionExample {
public static void main(String[] args) {
/*
* 🛠️ BiFunction
* 💡 Recibe dos valores de tipo T y U, y retorna un valor de tipo R.
*/
// Creamos una BiFunction que concatena dos cadenas
BiFunction<String, String, String> concatenateStrings = (s1, s2) -> {
// Cuerpo completo: retorna la concatenación de ambas cadenas
return s1 + " " + s2;
};
// Usamos la BiFunction para concatenar "Hola" y "Mundo"
System.out.println("Resultado de concatenación: " + concatenateStrings.apply("Hola", "Mundo"));
// Creamos otra BiFunction que suma dos números enteros
BiFunction<Integer, Integer, Integer> addNumbers = (n1, n2) -> {
// Suma de dos enteros
return n1 + n2;
};
// Aplicamos la BiFunction para sumar 10 y 20
System.out.println("Suma de 10 y 20: " + addNumbers.apply(10, 20));
}
}
Ejemplo 2: Reducción de la expresión Lambda
Java
package org.example.tinajero;
import java.util.function.BiFunction;
public class LambdaBiFunctionExampleSimplified {
public static void main(String[] args) {
/*
* 🛠️ BiFunction
* 💡 Recibe dos valores de tipo T y U, y retorna un valor de tipo R.
*/
// Versión simplificada de la BiFunction que concatena dos cadenas
BiFunction<String, String, String> concatenateStrings = (s1, s2) -> s1 + " " + s2;
// Ejecutamos la BiFunction para concatenar "Java" y "Lambda"
System.out.println("Resultado de concatenación: " + concatenateStrings.apply("Java", "Lambda"));
// Versión simplificada de la BiFunction que suma dos números
BiFunction<Integer, Integer, Integer> addNumbers = (n1, n2) -> n1 + n2;
// Aplicamos la BiFunction para sumar 15 y 25
System.out.println("Suma de 15 y 25: " + addNumbers.apply(15, 25));
}
}