Breve explicación
La función BiPredicate<T, U>
es una interfaz funcional en Java que acepta dos argumentos de tipo T
y U
y devuelve un valor booleano (true
o false
). Se utiliza para evaluar una condición basada en dos valores. El método funcional de BiPredicate
es test(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.BiPredicate;
public class LambdaBiPredicateExample {
public static void main(String[] args) {
/*
* 🛠️ BiPredicate
* 💡 Recibe dos valores de tipo T y U, y retorna un booleano (true o false).
*/
// Creamos un BiPredicate que verifica si el primer número es mayor que el segundo
BiPredicate<Integer, Integer> isFirstGreaterThanSecond = (num1, num2) -> {
// Cuerpo completo: retorna true si el primer número es mayor que el segundo
return num1 > num2;
};
// Usamos el BiPredicate para comparar 10 y 5
System.out.println("¿10 es mayor que 5? " + isFirstGreaterThanSecond.test(10, 5));
// Creamos otro BiPredicate que evalúa si dos cadenas tienen la misma longitud
BiPredicate<String, String> haveSameLength = (str1, str2) -> {
// Retorna true si ambas cadenas tienen la misma longitud
return str1.length() == str2.length();
};
// Aplicamos el BiPredicate para comparar "Hola" y "Java"
System.out.println("¿'Hola' y 'Java' tienen la misma longitud? " + haveSameLength.test("Hola", "Java"));
}
}
Ejemplo 2: Reducción de la expresión Lambda
Java
package org.example.tinajero;
import java.util.function.BiPredicate;
public class LambdaBiPredicateExampleSimplified {
public static void main(String[] args) {
/*
* 🛠️ BiPredicate
* 💡 Recibe dos valores de tipo T y U, y retorna un booleano (true o false).
*/
// Versión simplificada del BiPredicate que verifica si el primer número es mayor que el segundo
BiPredicate<Integer, Integer> isFirstGreaterThanSecond = (num1, num2) -> num1 > num2;
// Ejecutamos el BiPredicate para comparar 7 y 3
System.out.println("¿7 es mayor que 3? " + isFirstGreaterThanSecond.test(7, 3));
// Versión simplificada del BiPredicate que evalúa si dos cadenas tienen la misma longitud
BiPredicate<String, String> haveSameLength = (str1, str2) -> str1.length() == str2.length();
// Usamos el BiPredicate para comparar "Java" y "Code"
System.out.println("¿'Java' y 'Code' tienen la misma longitud? " + haveSameLength.test("Java", "Code"));
}
}