Formas de recorrer un HashMap en Java

Hola a todos, hoy os voy a explicar .

Un HashMap es una clase de Java que hereda de la clase Map.

Los Maps nos permiten asociar una clave con un valor, esto nos permite obtener un valor de forma más rápida.

Lo primero que necesitamos es crear el HashMap y asignarle valores.


import java.util.HashMap;

public class RecorrerHashmap {

    public static void main(String[] args) {
        
        HashMap<String, Integer> mapa = new HashMap<>();
        
        mapa.put("producto1", 5);
        mapa.put("producto2", 7);
        mapa.put("producto3", 9);
        mapa.put("producto4", 1);
        mapa.put("producto5", 4);
        
    }
    
}

Pero, ¿como podemos recorrer un HashMap? Tenemos varias formas.


for (String clave:mapa.keySet()) {
    int valor = mapa.get(clave);
    System.out.println("Clave: " + clave + ", valor: " + valor);
}

También podemos recorrerlo con un Iterator:


terator<String> it = mapa.keySet().iterator();

while(it.hasNext()){
    String clave = it.next();
    int valor = mapa.get(clave);
    System.out.println("Clave: " + clave + ", valor: " + valor);
}

Otra forma es con la clase Entry de Map:


System.out.println("recorrer mediante entry");
for (Map.Entry entry : mapa.entrySet()) {
    System.out.println(": " + entry.getKey() + " & Value: " + entry.getValue());
}

Podemos combinar el entry y el iterator.

System.out.println("Recorrer mediante entry e iterator");
Iterator iterator = mapa.entrySet().iterator();
while (iterator.hasNext()) {
    Map.Entry entry = (Map.Entry) iterator.next();
    System.out.println("Clave: " + entry.getKey() + ", valor: " + entry.getValue());
}

Podemos recorrer solo los valores del mapa:


System.out.println("Recorrer solo valores");
for (int valor : mapa.values()) {
    System.out.println("valor: " + valor);
}

Os dejo el ejemplo completo:


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

public class RecorrerHashmap {

    public static void main(String[] args) {

        HashMap<String, Integer> mapa = new HashMap<>();

        mapa.put("producto1", 5);
        mapa.put("producto2", 7);
        mapa.put("producto3", 9);
        mapa.put("producto4", 1);
        mapa.put("producto5", 4);

        System.out.println("Recorrer las claves");
        for (String clave : mapa.keySet()) {
            int valor = mapa.get(clave);
            System.out.println("Clave: " + clave + ", valor: " + valor);
        }

        System.out.println("Recorrer con un iterator");
        Iterator<String> it = mapa.keySet().iterator();

        while (it.hasNext()) {
            String clave = it.next();
            int valor = mapa.get(clave);
            System.out.println("Clave: " + clave + ", valor: " + valor);
        }

        System.out.println("Recorrer mediante entry");
        for (Map.Entry entry : mapa.entrySet()) {
            System.out.println("Clave: " + entry.getKey() + ", valor: " + entry.getValue());
        }

        System.out.println("Recorrer mediante entry e iterator");
        Iterator iterator = mapa.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry entry = (Map.Entry) iterator.next();
            System.out.println("Clave: " + entry.getKey() + ", valor: " + entry.getValue());
        }

        System.out.println("Recorrer solo valores");
        for (int valor : mapa.values()) {
            System.out.println("valor: " + valor);
        }

    }

}

Te dejo el ejemplo para descargar.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Etiquetas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *