Como percorrer um Map em Java?

A iteração sobre um Map em Java pode ser feita de várias formas, incluindo loops, iteradores e Stream API, garantindo eficiência na manipulação de chaves e valores.

Como percorrer um Map em Java?

A estrutura Map em Java armazena pares chave-valor, e frequentemente precisamos percorrer esses elementos para processá-los. Existem várias maneiras de iterar sobre um Map, dependendo da necessidade do código.

1. Percorrendo um Map Usando for-each

A forma mais comum de percorrer um Map é iterando sobre o conjunto de chaves (keySet()) ou entradas (entrySet()).

Iterando Apenas Pelas Chaves

import java.util.*;

public class TesteMap {
    public static void main(String[] args) {
        Map<String, Integer> mapa = new HashMap<>();
        mapa.put("Java", 20);
        mapa.put("Python", 15);
        mapa.put("C++", 10);

        for (String chave : mapa.keySet()) {
            System.out.println("Chave: " + chave);
        }
    }
}

Iterando Pelos Valores

for (Integer valor : mapa.values()) {
    System.out.println("Valor: " + valor);
}

Iterando Pelas Entradas (entrySet())

for (Map.Entry<String, Integer> entrada : mapa.entrySet()) {
    System.out.println("Chave: " + entrada.getKey() + ", Valor: " + entrada.getValue());
}

2. Usando Iterator

O Iterator é útil quando precisamos remover elementos durante a iteração.

Iterator<Map.Entry<String, Integer>> iterator = mapa.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry<String, Integer> entrada = iterator.next();
    System.out.println("Chave: " + entrada.getKey() + ", Valor: " + entrada.getValue());
}

3. Usando forEach() com Lambda (Java 8+)

A Stream API permite uma abordagem mais funcional e legível.

mapa.forEach((chave, valor) -> System.out.println("Chave: " + chave + ", Valor: " + valor));

4. Quando Usar Cada Método?

Método Melhor Para
keySet() Quando só as chaves são necessárias
values() Quando só os valores são importantes
entrySet() Quando precisamos de chaves e valores juntos
Iterator Quando é necessário remover elementos durante a iteração
forEach() Para um código mais moderno e conciso

Conclusão

Percorrer um Map em Java pode ser feito de diferentes maneiras. Para manipulação rápida, for-each com entrySet() é eficiente. Já forEach() com lambdas é mais legível e moderno, sendo recomendado para Java 8+. Caso seja necessário remover elementos durante a iteração, Iterator é a melhor opção.

A iteração eficiente sobre mapas é fundamental em aplicações que manipulam grandes quantidades de dados. Frameworks como Spring Boot utilizam Map internamente para armazenar configurações e dados de cache. Em APIs e bancos de dados, percorrer Map corretamente garante operações otimizadas e melhora a performance geral do sistema. Saber escolher a abordagem correta evita desperdício de recursos e melhora a legibilidade do código.

Algumas aplicações:

  • Manipulação de configurações em aplicações
  • Processamento eficiente de grandes volumes de dados
  • Filtragem e transformação de chaves e valores
  • Uso em APIs e comunicação entre serviços

Dicas para quem está começando

  • Use entrySet() quando precisar das chaves e valores
  • Evite keySet() se precisar acessar valores, pois é menos eficiente
  • Prefira forEach() para código mais limpo e moderno
  • Utilize Iterator apenas quando precisar modificar o Map
  • Teste diferentes abordagens e veja qual tem melhor desempenho

Contribuições de Rodrigo Farias

Compartilhe este tutorial: Como percorrer um Map em Java

Compartilhe este tutorial

Continue aprendendo:

Qual a diferença entre HashMap, LinkedHashMap e TreeMap

HashMap, LinkedHashMap e TreeMap são implementações da interface Map em Java, cada uma com características específicas de ordenação e desempenho.

Tutorial anterior

Como converter um ArrayList em um array e vice-versa

A conversão entre ArrayList e array em Java pode ser feita com toArray(), Arrays.asList() e técnicas eficientes para manipulação de coleções.

Próximo tutorial