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.
Por que é importante escolher o melhor método para percorrer um Map em Java?
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
Iteratorapenas quando precisar modificar oMap - Teste diferentes abordagens e veja qual tem melhor desempenho
Rodrigo Farias
Desenvolvedor Java focado em aplicações corporativas e microsserviços.
Mais sobre o autor