Para percorrermos um HashMap, utilizamos duas formas básicas utilizando o comando for, 
                com auxílio dos métodos get ou o método forEach. 
            
            
                Para o uso do comando for, precisamos utilizar o tipo de dado Entry<K,V> que 
                pertence a classe Map. Vamos utilizar também o método entrySet da classe HashMap.
            
            Sintaxe
            public void forEach(BiConsumer<? super E> action)
public Set<Map.Entry<K,V> entrySet()
            
                O tipo de dado Entry possui os métodos getValue e getKey que retornam, respectivamente, o valor(V)
                e a chave(K) de um elemento de um HashMap.
            
            Exemplo 7
            
//Main.java
import java.util.HashMap;
import java.util.Map;
public class Main
{
	public static void main(String[] args) {
	    
        HashMap<Integer,String> hm = new HashMap<Integer,String>();
        
        hm.put(10,"Teste 10");
        hm.put(20,"Teste 20");
        
        for( Map.Entry<Integer, String> e : hm.entrySet()){
            System.out.println(e.getKey());
            System.out.println(e.getValue());
        }
	}
}
            Saída
            
20
Teste 20
10
Teste 10
            
                Para melhor compreensão do exemplo abaixo, é necessário ter conhecimento sobre expressão lambda utilizada em conjunto
                com o método forEach.
            
            Exemplo 8
            
//Main.java
import java.util.HashMap;
import java.util.Map;
public class Main
{
	public static void main(String[] args) {
	    
        HashMap<Integer,String> hm = new HashMap<Integer,String>();
        
        hm.put(10,"Teste 10");
        hm.put(20,"Teste 20");
        
        hm.forEach((c,v) ->{
            System.out.println(c);
            System.out.println(v);
        });
	}
}
            Saída
            123