Atraviesa un HashMap en Java

HashMap almacena los datos en pares (Clave, Valor), y puede acceder a ellos mediante un índice de otro tipo. La clase HashMap implementa la interfaz Map que nos permite almacenar la clave. hashMap es una parte del marco de colecciones de Java desde Java 1.2. Utiliza internamente una técnica de hash que es bastante rápida.

Sintaxis:

public class HashMap<K,V>
extends AbstractMap<K,V>
implements Map<K,V>, Clonnable, Serial     

Diferentes formas de atravesar

Podemos iterar sobre el mapeo que es clave y pares de valores que se enumeran a continuación que se describen más adelante de la siguiente manera:  

Métodos: 

  1. Usando un iterador
  2. Uso de bucle for mejorado (bucle for-each)
  3. Usando el método forEach()

Método 1: usar un iterador

Iterator es una interfaz en el paquete java.util que se usa para iterar a través de una colección. Como tal, no hay nada especial para discutir los iteradores, por lo que propondremos métodos de la interfaz Iterator que se han utilizado para atravesar HashMap.    

  • hm.entrySet() se usa para recuperar todos los pares clave-valor llamados Map.Entries y se almacena internamente en un conjunto.
  • hm.entrySet().iterator() devuelve un iterador que actúa como un cursor y apunta al primer elemento del conjunto y continúa hasta el final.
  • hmIterator.hasNext() busca el siguiente elemento en el conjunto y devuelve un booleano
  • hmIterator.next() devuelve el siguiente elemento (Map.Entry) del conjunto.
  • mapElement.getKey() devuelve la clave del Map.Entry asociado
  • mapElement.getValue() devuelve el valor del Map.Entry asociado

Ejemplo:

Java

// Java Program to Traverse through HashMap
// Using Iterator
 
// Importing required classes
import java.util.*;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating an Hashmap of string-integer pairs
        // It contains student name and their marks
        HashMap<String, Integer> hm
            = new HashMap<String, Integer>();
 
        // Adding mappings to above HashMap
        // using put() method
        hm.put("GeeksforGeeks", 54);
        hm.put("A computer portal", 80);
        hm.put("For geeks", 82);
 
        // Printing all elements of HashMap
        System.out.println("Created hashmap is" + hm);
 
        // Getting an iterator
        Iterator hmIterator = hm.entrySet().iterator();
 
        // Display message only
        System.out.println(
            "HashMap after adding bonus marks:");
 
        // Iterating through Hashmap and
        // adding some bonus marks for every student
        while (hmIterator.hasNext()) {
 
            Map.Entry mapElement
                = (Map.Entry)hmIterator.next();
            int marks = ((int)mapElement.getValue() + 10);
 
            // Printing mark corresponding to string entries
            System.out.println(mapElement.getKey() + " : "
                               + marks);
        }
    }
}
Producción

Created hashmap is{GeeksforGeeks=54, A computer portal=80, For geeks=82}
HashMap after adding bonus marks:
GeeksforGeeks : 64
A computer portal : 90
For geeks : 92

Método 2: Usar bucle for-each

Ejemplo:

Java

// Java program for Traversing through HashMap
// Using for-each Loop
 
// Importing required classes
import java.util.*;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // creating an empty HashMap of string and integer
        // pairs Mappings denotes Student name and marks
        HashMap<String, Integer> hm
            = new HashMap<String, Integer>();
 
        // Adding mappings to HashMap
        // using put() method
        hm.put("GeeksforGeeks", 54);
        hm.put("A computer portal", 80);
        hm.put("For geeks", 82);
 
        // Printing all elements of above Map
        System.out.println("Created hashmap is" + hm);
 
        // Display message only
        System.out.println(
            "HashMap after adding bonus marks:");
 
        // Looping through the HashMap
        // Using for-each loop
        for (Map.Entry<String,Integer> mapElement : hm.entrySet()) {
            String key = mapElement.getKey();
 
            // Adding some bonus marks to all the students
            int value = (mapElement.getValue() + 10);
 
            // Printing above marks corresponding to
            // students names
            System.out.println(key + " : " + value);
        }
    }
}
Producción: 

Created hashmap is{GeeksforGeeks=54, A computer portal=80, For geeks=82}
HashMap after adding bonus marks:
GeeksforGeeks : 64
A computer portal : 90
For geeks : 92

 

Método 3: Usar el método forEach()

forEach() es un método de HashMap que se introdujo en Java 8. Se usa para iterar a través del hashmap y también reduce el número de líneas de código como se propone a continuación:

Ejemplo:

Java

// Java program for traversing Through HashMap
// Using forEach() Method
 
// Importing required classes
import java.util.*;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating an  empty HashMap of string-integer
        // pairs
        HashMap<String, Integer> hm
            = new HashMap<String, Integer>();
 
        // Adding mappings to HashMap
        // using put() method
        hm.put("GeeksforGeeks", 54);
        hm.put("A computer portal", 80);
        hm.put("For geeks", 82);
 
        // Printing all elements of above HashMap
        System.out.println("Created hashmap is" + hm);
 
        // Display message only
        System.out.println(
            "HashMap after adding bonus marks:");
 
        // Looping through HashMap and adding bonus marks
        // using HashMap.forEach()
        hm.forEach((k, v)
                       -> System.out.println(k + " : "
                                             + (v + 10)));
    }
}
Producción: 

Created hashmap is{GeeksforGeeks=54, A computer portal=80, For geeks=82}
HashMap after adding bonus marks:
GeeksforGeeks : 64
A computer portal : 90
For geeks : 92

 

Publicación traducida automáticamente

Artículo escrito por SujanM y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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