Lambdas e Interfaces Funcionales
Java permite el paradigma de programaci贸n funcional desde la versi贸n 8.
Interfaces Funcionales
Es una interfaz que tiene exactamente un m茅todo abstracto. Se suelen marcar con @FunctionalInterface.
@FunctionalInterface
public interface Operacion {
int ejecutar(int a, int b);
}
Expresiones Lambda
Son una forma concisa de implementar una interfaz funcional sin crear una clase completa.
Sintaxis: (par谩metros) -> expresi贸n
// Ejemplo de lambda para sumar
Operacion suma = (a, b) -> a + b;
System.out.println(suma.ejecutar(5, 3)); // 8
Stream API y Aplicaciones
Las lambdas son muy potentes cuando se usan con colecciones:
forEach: Recorre elementos.filter: Filtra elementos seg煤n una condici贸n.map: Transforma elementos.anyMatch/allMatch: Verifica condiciones.
Ejemplo:
List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> pares = numeros.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
// Resultado: [2, 4, 6]