Introducción a la Programación Funcional en JAVA

En este ejercicio, explorarás los conceptos clave de la **programación funcional** en Java. Aprenderás cómo utilizar **expresiones lambda**, funciones de orden superior y el API de **Streams** para escribir código más limpio, legible y eficiente. Con ejemplos prácticos, comprenderás cómo aplicar estos conceptos para resolver problemas de manera más declarativa, mejorando así la calidad y el rendimiento de tus aplicaciones Java.

Tema

Programación Funcional y Expresiones Lambda

Ejercicio Java

En este ejercicio, crearás un programa en Java que utilice **expresiones lambda** y **Streams** para realizar operaciones en colecciones. Primero, crearás una lista de enteros y luego aplicarás diferentes transformaciones utilizando **Streams**, como filtrado, mapeo y reducción. Posteriormente, implementarás **expresiones lambda** para simplificar la implementación de las operaciones. Este ejercicio te ayudará a comprender cómo aplicar la programación funcional en Java y aprovechar sus beneficios en términos de concisión y claridad del código.

Instrucciones:

  1. Crea una lista de enteros utilizando ArrayList.
  2. Usa un **Stream** para filtrar los elementos de la lista que sean mayores que un valor determinado.
  3. Aplica una operación de mapeo a los elementos de la lista, convirtiéndolos en su valor al cuadrado.
  4. Usa una **expresión lambda** para implementar un método que calcule la suma de todos los elementos de la lista.
  5. Demuestra cómo estas operaciones se combinan para realizar un procesamiento funcional en una colección.

Este ejercicio te ayudará a entender cómo la programación funcional en Java permite escribir código más conciso, claro y eficiente, aprovechando el poder de las **expresiones lambda** y los **Streams** para realizar operaciones complejas de manera más simple.


// Importar las clases necesarias
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        // Crear una lista de enteros
        List<Integer> numeros = new ArrayList<>();
        numeros.add(5);
        numeros.add(10);
        numeros.add(15);
        numeros.add(20);
        numeros.add(25);
        
        // Filtrar los números mayores que 10
        List<Integer> mayoresQueDiez = numeros.stream()
                                               .filter(n -> n > 10)
                                               .collect(Collectors.toList());
        
        // Mapear los números para obtener su cuadrado
        List<Integer> cuadrados = numeros.stream()
                                         .map(n -> n * n)
                                         .collect(Collectors.toList());
        
        // Sumar los números utilizando expresiones lambda
        int suma = numeros.stream()
                          .reduce(0, (a, b) -> a + b);
        
        // Imprimir resultados
        System.out.println("Números mayores que 10: " + mayoresQueDiez);
        System.out.println("Cuadrados de los números: " + cuadrados);
        System.out.println("Suma de los números: " + suma);
    }
}

 Salida:

Números mayores que 10: [15, 20, 25]
Cuadrados de los números: [25, 100, 225, 400, 625]
Suma de los números: 75

Este programa demuestra cómo utilizar la **programación funcional** en Java para trabajar con colecciones. Se utiliza un **Stream** para filtrar los números mayores que 10, se mapean los números para obtener sus cuadrados y se utiliza una **expresión lambda** para calcular la suma total de los números en la lista. Al ejecutar el programa, podrás ver cómo se procesan las colecciones de manera eficiente y concisa.


 Comparte este ejercicio JAVA