0% encontró este documento útil (0 votos)
78 vistas4 páginas

Expresiones Lambda en Java

Las expresiones lambda en Java permiten tratar funciones como ciudadanos de primera clase, facilitando la implementación de interfaces funcionales de manera concisa. Su sintaxis permite definir funciones anónimas que mejoran la legibilidad y reducen el código innecesario, y son fundamentales en la API de Streams para operaciones sobre colecciones. Las ventajas incluyen un código más conciso, legible y un mejor rendimiento al evitar clases anónimas innecesarias.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
78 vistas4 páginas

Expresiones Lambda en Java

Las expresiones lambda en Java permiten tratar funciones como ciudadanos de primera clase, facilitando la implementación de interfaces funcionales de manera concisa. Su sintaxis permite definir funciones anónimas que mejoran la legibilidad y reducen el código innecesario, y son fundamentales en la API de Streams para operaciones sobre colecciones. Las ventajas incluyen un código más conciso, legible y un mejor rendimiento al evitar clases anónimas innecesarias.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

📌 Expresiones Lambda en Java

Las expresiones lambda en Java permiten tratar funciones como ciudadanos de primera clase,
es decir, permiten pasar comportamientos como parámetros. Antes de Java 8, los métodos
solo podían existir dentro de una clase, pero con lambdas, se pueden definir funciones
anónimas que pueden ser asignadas a variables y pasadas como argumentos.

1️⃣ ¿Qué es una Expresión Lambda?

Una expresión lambda es una forma concisa de escribir una implementación de una interfaz
funcional.

📌 Sintaxis General

(parametros) -> { cuerpo de la función }

 parametros → Los argumentos de la función.

 -> → Operador lambda, separa los parámetros del cuerpo.

 { cuerpo } → Contiene la lógica de la función.

Ejemplo: Sin Lambda vs Con Lambda

Sin lambdas (Java 7 o anterior):

Runnable tarea = new Runnable() {

@Override

public void run() {

[Link]("Ejecutando tarea...");

};

Con lambda (Java 8+):

Runnable tarea = () -> [Link]("Ejecutando tarea...");

✅ Reduce código innecesario y mejora la legibilidad.

2️⃣ Interfaces Funcionales y Lambdas

Las lambdas solo funcionan con interfaces funcionales, es decir, interfaces que tienen un solo
método abstracto.

Ejemplo: Definiendo una interfaz funcional

@FunctionalInterface

interface Operacion {

int calcular(int a, int b);


}

La siguiente lambda implementa Operacion:

Operacion suma = (a, b) -> a + b;

[Link]([Link](5, 3)); // Output: 8

✅ Las lambdas permiten definir el comportamiento de calcular() sin necesidad de crear clases
anónimas.

3️⃣ Tipos de Parámetros en Lambda

1. Sin parámetros

() -> [Link]("Hola Mundo!");

2. Un solo parámetro (sin paréntesis opcionales)

nombre -> [Link]("Hola " + nombre);

O usando paréntesis (recomendado para claridad):

(nombre) -> [Link]("Hola " + nombre);

3. Múltiples parámetros

(a, b) -> a + b;

4. Cuerpo con múltiples líneas

(a, b) -> {

int resultado = a + b;

[Link]("Suma: " + resultado);

return resultado;

};

✅ Las llaves {} solo son necesarias si hay más de una instrucción.

4️⃣ Uso de Lambdas con Interfaces Funcionales de Java ([Link])

Java proporciona interfaces funcionales listas para usar en [Link].

Interfaz Método Principal Descripción

Supplier<T> T get() No recibe parámetros, devuelve un resultado.

Consumer<T> void accept(T t) Recibe un parámetro, no devuelve nada.

Function<T,R> R apply(T t) Recibe un parámetro y devuelve un resultado.

Predicate<T> boolean test(T t) Recibe un parámetro y devuelve boolean.


Ejemplo: Supplier

Supplier<String> mensaje = () -> "Hola desde Supplier";

[Link]([Link]());

Ejemplo: Consumer

Consumer<String> imprimir = mensaje -> [Link](mensaje);

[Link]("Hola desde Consumer");

Ejemplo: Function

Function<Integer, String> convertir = numero -> "Número: " + numero;

[Link]([Link](10)); // "Número: 10"

Ejemplo: Predicate

Predicate<Integer> esPar = num -> num % 2 == 0;

[Link]([Link](8)); // true

[Link]([Link](7)); // false

5️⃣ Uso Avanzado con Streams y Lambdas

Las expresiones lambda son fundamentales en Stream API, que permite operaciones sobre
colecciones de datos.

Ejemplo 1: Filtrar una lista

List<String> nombres = [Link]("Carlos", "Ana", "Pedro", "Lucas");

List<String> nombresConA = [Link]()

.filter(nombre -> [Link]("A"))

.collect([Link]());

[Link](nombresConA); // [Ana]

Ejemplo 2: Transformar elementos (map())

List<String> nombresMayus = [Link]()

.map(String::toUpperCase)

.collect([Link]());
[Link](nombresMayus); // [CARLOS, ANA, PEDRO, LUCAS]

Ejemplo 3: Sumar números con reduce()

List<Integer> numeros = [Link](1, 2, 3, 4, 5);

int suma = [Link]().reduce(0, (a, b) -> a + b);

[Link](suma); // 15

6️⃣ Ventajas de usar Expresiones Lambda

✅ Código más conciso → Reduce código repetitivo.


✅ Más legible → Hace que el código sea más expresivo.
✅ Mejor rendimiento → Evita la creación de clases anónimas innecesarias.
✅ Permite programación funcional → Facilita el uso de Stream API.

📌 Conclusión

Las expresiones lambda revolucionaron Java al permitir una programación más funcional y
declarativa. Se usan ampliamente en Streams, colecciones, hilos y APIs funcionales.

🚀 ¿Quieres más ejemplos o necesitas ayuda en un caso específico?

También podría gustarte