Streams Api

map

Trabalhando com map

O método map é uma das operações mais poderosas da Streams API do Java 8. Ele permite transformar cada elemento de uma stream de acordo com uma função fornecida e coletar os resultados em uma nova stream.

Sintaxe

A sintaxe básica do map é bastante simples. Ele aceita uma função como argumento, que é aplicada a cada elemento da stream.

List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5);

List<Integer> elementosMultiplicados = numeros.stream()
                                            .map(valor -> {
                                                // Transformação a ser aplicada a cada elemento
                                            })
                                            .collect(Collectors.toList());

Exemplo

Vejamos um exemplo prático de como usar o map:

List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5);

List<Integer> elementosMultiplicados = numeros.stream()
                                            .map(valor -> {
                                                    return valor * 2;
                                                })
                                            .collect(Collectors.toList());

System.out.println(elementosMultiplicados);

Este código irá gerar uma nova lista elementosMultiplicados, onde cada elemento é o dobro do elemento correspondente na lista original. A saída será [2, 4, 6, 8, 10].

Dicas

  • O map é extremamente útil para transformar os elementos de uma coleção de uma forma concisa e legível.
  • Se a função lambda passada para o map retornar apenas uma expressão, você pode simplificar ainda mais o código.

Com o return:

.map(valor -> {
    return valor * 2;
})

Simplificado:

.map(valor -> valor * 2)

Limitações

É importante notar que o map não modifica a coleção original. Ele apenas cria uma nova coleção com os elementos transformados.