Come iterare HashMap in Java?

HashMap è una parte della raccolta Java che fornisce l'implementazione di base dell'interfaccia Map di Java memorizzando i dati in coppie (Chiave, Valore) per accedervi tramite un indice di altro tipo. Un oggetto viene elencato come chiave (indice) per un altro oggetto (valore). Se provi a inserire la chiave duplicata, sostituirà l'elemento della chiave corrispondente. Per utilizzare questa classe e i suoi metodi è necessario importare java.util.HashMap pacchetto o la sua superclasse.

Esistono numerosi modi per eseguire l'iterazione su HashMap, di cui 5 sono elencati di seguito:

  1. Iterare attraverso una HashMap Set di immissione utilizzando gli iteratori.
  2. Scorrere attraverso HashMap Mazzo di chiavi utilizzando Iteratore.
  3. Itera HashMap utilizzando per ogni ciclo .
  4. Iterazione attraverso una HashMap utilizzando le espressioni Lambda.
  5. Passa attraverso una HashMap utilizzando API di flusso .

Metodo 1: utilizzo di un ciclo for per scorrere una HashMap. Iterazione di una HashMap attraverso un ciclo for da utilizzare getValore() E getKey() funzioni.

Implementazione: Nel codice riportato di seguito, set di voci() viene utilizzato per restituire una vista impostata degli elementi mappati. Dal codice riportato di seguito:

  • set.getValue() per ottenere valore dal set.
  • set.getKey() per ottenere la chiave dal set.

Giava




// Java Program to Iterate over HashMap> // Importing Map and HashMap classes> // from package names java.util> import> java.util.HashMap;> import> java.util.Map;> // Class for iterating HashMap using for loop> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > {> > // Creating a HashMap> > Map foodTable> > => new> HashMap();> > // Inserting elements to the adobe HashMap> > // Elements- Key value pairs using put() method> > foodTable.put(> 'A'> ,> 'Angular'> );> > foodTable.put(> 'J'> ,> 'Java'> );> > foodTable.put(> 'P'> ,> 'Python'> );> > foodTable.put(> 'H'> ,> 'Hibernate'> );> > // Iterating HashMap through for loop> > for> (Map.Entry set :> > foodTable.entrySet()) {> > // Printing all elements of a Map> > System.out.println(set.getKey() +> ' = '> > + set.getValue());> > }> > }> }>

Produzione

P = Python A = Angular H = Hibernate J = Java 

Metodo 2: utilizzo di forEach per scorrere una HashMap. Nel secondo metodo, la funzione forEach per ripetere le coppie chiave-valore.

Giava




// Java Program to Iterate over HashMap> // Iterating HashMap using forEach> // Importing Map and HashMap classes> // from package names java.util> import> java.util.HashMap;> import> java.util.Map;> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > {> > // Creating hash map> > Map charType> > => new> HashMap();> > // Inserting data in the hash map.> > charType.put(> 'J'> ,> 'Java'> );> > charType.put(> 'H'> ,> 'Hibernate'> );> > charType.put(> 'P'> ,> 'Python'> );> > charType.put(> 'A'> ,> 'Angular'> );> > // Iterating HashMap through forEach and> > // Printing all. elements in a Map> > charType.forEach(> > (key, value)> > ->System.out.println(tasto +> ' = '> + value));> > }> }>

Produzione

P = Python A = Angular H = Hibernate J = Java 

Metodo 3: utilizzo di un iteratore per scorrere una HashMap. In questo metodo, l'iteratore viene utilizzato per ripetere ciascuna coppia mappata in HashMap come mostrato nel programma Java di seguito.

Esempio:

Giava




// Java Program to Iterate over HashMap> // Using Iterator> // Importing classes from java.util package> import> java.util.HashMap;> import> java.util.Iterator;> import> java.util.Map;> import> java.util.Map.Entry;> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] arguments)> > {> > // Creating Hash map> > Map intType> > => new> HashMap();> > // Inserting data(Key-value pairs) in hashmap> > intType.put(> 1> ,> 'First'> );> > intType.put(> 2> ,> 'Second'> );> > intType.put(> 3> ,> 'Third'> );> > intType.put(> 4> ,> 'Fourth'> );> > // Iterator> > Iterator new_Iterator> > = intType.entrySet().iterator();> > // Iterating every set of entry in the HashMap> > while> (new_Iterator.hasNext()) {> > Map.Entry new_Map> > = (Map.Entry)> > new_Iterator.next();> > // Displaying HashMap> > System.out.println(new_Map.getKey() +> ' = '> > + new_Map.getValue());> > }> > }> }>


Produzione

1 = First 2 = Second 3 = Third 4 = Fourth 

Metodo 4: Iterazione attraverso una HashMap utilizzando le espressioni Lambda

Un'espressione lambda è un breve blocco di codice che accetta parametri e restituisce un valore. Le espressioni lambda sono simili ai metodi, ma non necessitano di un nome e possono essere implementate direttamente nel corpo di un metodo. L'espressione lambda più semplice contiene un singolo parametro e un'espressione:

parameter ->espressione 

Esempio:

Giava




// Iterating HashMap using Lambda Expressions- forEach()> // Importing Map and HashMap classes> // from java.util package> import> java.util.HashMap;> import> java.util.Map;> // Class> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > {> > // Creating hash map> > Map charType> > => new> HashMap();> > // Inserting elements(key-value pairs)> > // in the hash map ( Custom inputs)> > charType.put(> 'A'> ,> 'Apple'> );> > charType.put(> 'B'> ,> 'Basketball'> );> > charType.put(> 'C'> ,> 'Cat'> );> > charType.put(> 'D'> ,> 'Dog'> );> > // Iterating through forEach and> > // printing the elements> > charType.forEach(> > (key, value)> > ->System.out.println(tasto +> ' = '> + value));> > }> }>

Produzione

A = Apple B = Basketball C = Cat D = Dog 

Metodo 5: Passa attraverso una HashMap utilizzando l'API Stream

L'esempio seguente esegue l'iterazione su una HashMap con l'aiuto dell'API stream.

L'API Stream viene utilizzata per elaborare raccolte di oggetti.

I flussi non modificano la struttura dei dati originale, forniscono solo il risultato secondo i metodi in pipeline

Passaggi:

  • Prima invoca entrySet().stream() metodo che a sua volta restituisce l'oggetto Stream.
  • Prossimo forEach metodo , che esegue l'iterazione degli oggetti di input presenti in entrySet(). Vedi il codice seguente.

Esempio:

Giava




// Java Program to Iterate over HashMap> // Loop through a HashMap using Stream API> // Importing classes from> // package named 'java.util'> import> java.util.HashMap;> import> java.util.Iterator;> import> java.util.Map;> import> java.util.Map.Entry;> // HashMap class> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] arguments)> > {> > // Creating hash map> > Map intType> > => new> HashMap();> > // Inserting data(key-value pairs) in HashMap> > // Custom inputs> > intType.put(> 1> ,> 'First'> );> > intType.put(> 2> ,> 'Second'> );> > intType.put(> 3> ,> 'Third'> );> > intType.put(> 4> ,> 'Fourth'> );> > // Iterating every set of entry in the HashMap, and> > // printing all elements of it> > intType.entrySet().stream().forEach(> > input> > ->System.out.println(input.getKey() +> ' : '> > + input.getValue()));> > }> }>

Produzione

1 : First 2 : Second 3 : Third 4 : Fourth