Como Iterar Sobre Cada Elemento do Mapa em Java

Mohammad Irfan 12 outubro 2023
  1. Como Iterar Elementos do Mapa em Java
  2. Elementos Iterativos Map Utilizando for loop em Java
  3. Iterar os elementos Map utilizando foreach em Java
  4. Iterate Map Elementos utilizando Entry e Iterator em Java
  5. Iterate Map Elementos utilizando for-each e keySet() em Java
  6. Iterate Map Elementos que utilizam while loop em Java
  7. Iterate Map Elementos utilizando Stream e forEach em Java
  8. Iterate Map Elements Utilizando forEach e lambda em Java
Como Iterar Sobre Cada Elemento do Mapa em Java

Este tutorial introduz como iterar sobre cada elemento do mapa e lista alguns exemplos de códigos para entendê-lo.

Como Iterar Elementos do Mapa em Java

O mapa é uma interface que é usada para coletar dados na forma de par de valores-chave. Java fornece várias maneiras de iterar elementos do mapa, tais como for loop, for-each loop, while loop, forEach() método, etc. Vamos ver os exemplos.

Elementos Iterativos Map Utilizando for loop em Java

Utilizamos um simples loop for para iterar os elementos do Map. Aqui, no laço é utilizado o método de iterator() para obter entradas.

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class SimpleTesting {
  public static void main(String[] args) {
    Map<Integer, String> map = new HashMap<>();
    map.put(10, "Ten");
    map.put(100, "Hundred");
    map.put(1000, "Thousand");
    for (Iterator<Map.Entry<Integer, String>> entries = map.entrySet().iterator();
         entries.hasNext();) {
      Map.Entry<Integer, String> entry = entries.next();
      System.out.println(entry.getKey() + " : " + entry.getValue());
    }
  }
}

Resultado:

100 : Hundred
1000 : Thousand
10 : Ten

Iterar os elementos Map utilizando foreach em Java

Utilizamos o método for-each e entrySet() para iterar cada entrada do mapa. O entrySet() devolve um array de entradas do mapa.

import java.util.HashMap;
import java.util.Map;

public class SimpleTesting {
  public static void main(String[] args) {
    Map<Integer, String> map = new HashMap<>();
    map.put(10, "Ten");
    map.put(100, "Hundred");
    map.put(1000, "Thousand");
    for (Map.Entry<Integer, String> entry : map.entrySet()) {
      System.out.println(entry.getKey() + ":" + entry.getValue());
    }
  }
}

Resultado:

100 : Hundred
1000 : Thousand
10 : Ten

Iterate Map Elementos utilizando Entry e Iterator em Java

O método iterator() retorna um iterator para atravessar os elementos enquanto que o método Entry é utilizado para recolher a entrada do Map.

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class SimpleTesting {
  public static void main(String[] args) {
    Map<Integer, String> map = new HashMap<>();
    map.put(10, "Ten");
    map.put(100, "Hundred");
    map.put(1000, "Thousand");
    Iterator<Map.Entry<Integer, String>> entries = map.entrySet().iterator();
    while (entries.hasNext()) {
      Map.Entry<Integer, String> entry = entries.next();
      System.out.println(entry.getKey() + ":" + entry.getValue());
    }
  }
}

Resultado:

100 : Hundred
1000 : Thousand
10 : Ten

Iterate Map Elementos utilizando for-each e keySet() em Java

O método keySet() é utilizado para coletar o array de chaves do Map que é utilizado para iterar utilizando o for-each loop.

import java.util.HashMap;
import java.util.Map;

public class SimpleTesting {
  public static void main(String[] args) {
    Map<Integer, String> map = new HashMap<>();
    map.put(10, "Ten");
    map.put(100, "Hundred");
    map.put(1000, "Thousand");
    for (Integer key : map.keySet()) {
      System.out.println(key + " : " + map.get(key));
    }
  }
}

Resultado:

100 : Hundred
1000 : Thousand
10 : Ten

Iterate Map Elementos que utilizam while loop em Java

Aqui, utilizamos o método iterator() para obter o iterador de chaves e depois iterar estas chaves utilizando o método while-loop. Para obter valor por uma chave, utilizamos o método get().

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class SimpleTesting {
  public static void main(String[] args) {
    Map<Integer, String> map = new HashMap<>();
    map.put(10, "Ten");
    map.put(100, "Hundred");
    map.put(1000, "Thousand");
    Iterator<Integer> itr = map.keySet().iterator();
    while (itr.hasNext()) {
      Integer key = itr.next();
      System.out.println(key + " : " + map.get(key));
    }
  }
}

Resultado:

100 : Hundred
1000 : Thousand
10 : Ten

Iterate Map Elementos utilizando Stream e forEach em Java

Podemos usar o fluxo para iterar os elementos. Aqui, utilizamos entrySet() para coletar inteiros de mapas que atravessaram mais adiante através do método forEach() de fluxo.

import java.util.HashMap;
import java.util.Map;

public class SimpleTesting {
  public static void main(String[] args) {
    Map<Integer, String> map = new HashMap<>();
    map.put(10, "Ten");
    map.put(100, "Hundred");
    map.put(1000, "Thousand");
    map.entrySet().stream().forEach(System.out::println);
  }
}

Resultado:

100=Hundred
1000=Thousand
10=Ten

Iterate Map Elements Utilizando forEach e lambda em Java

Também podemos usar a expressão lambda para iterar os elementos do mapa. Aqui, utilizamos a expressão lambda dentro do método forEach().

import java.util.HashMap;
import java.util.Map;

public class SimpleTesting {
  public static void main(String[] args) {
    Map<Integer, String> map = new HashMap<>();
    map.put(10, "Ten");
    map.put(100, "Hundred");
    map.put(1000, "Thousand");
    map.forEach((key, value) -> System.out.println(key + " : " + value));
  }
}

Resultado:

100 : Hundred
1000 : Thousand
10 : Ten

Artigo relacionado - Java Map

Artigo relacionado - Java Collection