HashMap és una part de la col·lecció de Java que proporciona la implementació bàsica de la interfície Map de Java emmagatzemant les dades en parells (clau, valor) per accedir-hi mitjançant un índex d'un altre tipus. Un objecte apareix com a clau (índex) per a un altre objecte (valor). Si intenteu inserir la clau duplicada, substituirà l'element de la clau corresponent. Per utilitzar aquesta classe i els seus mètodes, cal importar java.util.HashMap paquet o la seva superclasse.
Hi ha un gran nombre de maneres d'iterar sobre HashMap, de les quals 5 s'enumeren a continuació:
- Iterar a través d'un HashMap EntrySet utilitzant iteradors.
- Itera a través de HashMap KeySet utilitzant Iterator.
- Itereu HashMap utilitzant per a cada bucle .
- Iteració a través d'un HashMap utilitzant expressions Lambda.
- Recorre un HashMap utilitzant API Stream .
Mètode 1: utilitzant un bucle for per iterar a través d'un HashMap. Iterant un HashMap a través d'un bucle for per utilitzar-lo getValue() i getKey() funcions.
Implementació: En el codi que es mostra a continuació, entrySet() s'utilitza per retornar una vista conjunta dels elements mapats. A partir del codi que es mostra a continuació:
- set.getValue() per obtenir el valor del conjunt.
- set.getKey() per obtenir la clau del conjunt.
Java
// 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());> >}> >}> }> |
>
>Sortida
P = Python A = Angular H = Hibernate J = Java>
Mètode 2: utilitzant un forEach per iterar a través d'un HashMap. En el segon mètode, la funció forEach per iterar els parells clau-valor.
Java
// 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(clau +>' = '> + value));> >}> }> |
>
>Sortida
P = Python A = Angular H = Hibernate J = Java>
Mètode 3: Ús d'un iterador per iterar a través d'un HashMap. En aquest mètode, l'iterador s'està utilitzant per iterar cada parell assignat a HashMap, tal com es mostra al programa java següent.
Exemple:
Java
// 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());> >}> >}> }> |
logotip de java
>
>
1 = First 2 = Second 3 = Third 4 = Fourth>
Mètode 4: iteració a través d'un HashMap utilitzant expressions Lambda
Una expressió lambda és un bloc breu de codi que pren paràmetres i retorna un valor. Les expressions lambda són semblants als mètodes, però no necessiten un nom i es poden implementar directament al cos d'un mètode. L'expressió lambda més senzilla conté un sol paràmetre i una expressió:
parameter ->expressió>
Exemple:
Java
// 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(clau +>' = '> + value));> >}> }> |
>
>Sortida
A = Apple B = Basketball C = Cat D = Dog>
Mètode 5: Recorre un HashMap mitjançant l'API Stream
L'exemple següent itera sobre un HashMap amb l'ajuda de l'API de flux.
L'API Stream s'utilitza per processar col·leccions d'objectes.
ctc forma completa
Els fluxos no canvien l'estructura de dades original, només proporcionen el resultat segons els mètodes canalitzats
Passos:
- Primer invocar entrySet().stream() mètode que al seu torn retorna l'objecte Stream.
- Pròxim per a cada mètode , que itera els objectes d'entrada que es troben a entrySet(). Vegeu el codi següent.
Exemple:
Java
// 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()));> >}> }> |
>
>Sortida
1 : First 2 : Second 3 : Third 4 : Fourth>