Junior
¿Qué permite hacer las expresiones lambda en Java?
sobes.tech AI
Respuesta de la IA
Las expresiones lambda en Java, introducidas en Java 8, permiten:
- Implementar interfaces con un solo método abstracto (interfaces funcionales): Este es su propósito principal. Las lambdas proporcionan una sintaxis concisa para crear instancias de interfaces funcionales.
// Antes de Java 8
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("¡Hola pre-Java 8!");
}
};
// Con Java 8
Runnable lambdaRunnable = () -> System.out.println("¡Hola Java 8!");
- Pasar comportamientos (funciones) como argumentos a métodos: Esto amplía las capacidades de la programación funcional en Java. Los métodos pueden aceptar expresiones lambda como parámetros.
// Ejemplo de uso de la API Stream con lambda
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.stream()
.filter(name -> name.startsWith("A")) // Lambda como argumento de filter
.forEach(System.out::println); // Lambda (Referencia a método) como argumento de forEach
- Usar la API Stream: Las expresiones lambda son fundamentales para trabajar con la nueva API Stream, permitiendo procesar colecciones de datos de manera eficiente.
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sumOfEven = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(Integer::intValue)
.sum();
-
Simplificar la implementación de clases internas anónimas para interfaces funcionales: Las lambdas reemplazan la sintaxis verbose de las clases anónimas en este contexto.
-
Mejorar la legibilidad del código: Para operaciones simples, las lambdas hacen que el código sea más conciso y comprensible.
-
Permitir la ejecución diferida del código: La expresión lambda describe una acción que se ejecutará más tarde, cuando sea llamada.
Las lambdas también tienen acceso a variables locales del ámbito externo (si son efectivamente finales).
En general, las expresiones lambda hacen que Java sea más expresivo y adecuado para el estilo de programación funcional.