November 21, 2024

En Java, el método map() es una herramienta muy útil que se utiliza para aplicar una función a cada elemento de una colección. Es una función de orden superior que toma una función como argumento y devuelve un nuevo Stream con los elementos transformados. En este artículo, vamos a discutir el método map() en detalle y proporcionar algunos ejemplos prácticos.

Sintaxis del método map()

La sintaxis básica del método map() en Java es la siguiente:

<R> Stream<R> map(Function<? super T,? extends R> mapper)

Donde:

  • R: tipo de retorno del nuevo Stream
  • T: tipo de elementos de la colección original
  • mapper: la función que se aplicará a cada elemento de la colección original

El método map() toma una función que toma un objeto de tipo T como entrada y devuelve un objeto de tipo R. La función se aplica a cada elemento de la colección original, y el resultado se almacena en un nuevo Stream de tipo R.

Ejemplos de uso del método map()

Supongamos que tenemos una lista de números enteros y queremos convertirla en una lista de cadenas. Podemos hacerlo fácilmente usando el método map() de la siguiente manera:

List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5);
List<String> cadenas = numeros.stream()
                              .map(n -> String.valueOf(n))
                              .collect(Collectors.toList());
System.out.println(cadenas);

En este ejemplo, estamos convirtiendo la lista de enteros en una lista de cadenas usando el método map() y la función lambda n -> String.valueOf(n). La función lambda toma un número entero como entrada y lo convierte en una cadena usando el método String.valueOf(). Finalmente, usamos el método collect() para almacenar los elementos del nuevo Stream en una lista.

La salida de este programa sería:

["1", "2", "3", "4", "5"]

Ejemplo 2: Convertir una lista de objetos en una lista de valores de propiedad

Supongamos que tenemos una lista de objetos y queremos crear una lista de los valores de una propiedad específica de esos objetos. Podemos hacerlo usando el método map() y una función lambda que acceda a la propiedad deseada. Por ejemplo:

class Persona {
    private String nombre;
    private int edad;

    public Persona(String nombre, int edad) {
        this.nombre = nombre;
        this.edad = edad;
    }

    public String getNombre() {
        return nombre;
    }

    public int getEdad() {
        return edad;
    }
}

List<Persona> personas = Arrays.asList(new Persona("Juan", 30), new Persona("María", 25), new Persona("Pedro", 40));
List<String> nombres = personas.stream()
                               .map(p -> p.getNombre())
                               .collect(Collectors.toList());
System.out.println(nombres);

En este ejemplo, estamos creando una lista de nombres de personas a partir de una lista de objetos Persona. Usamos el método map() y la función lambda p -> p.getNombre() para acceder al nombre de cada persona en la lista original. Finalmente, usamos el método `

Leave a Reply

Your email address will not be published. Required fields are marked *