HashMap är en del av Javas samling som tillhandahåller den grundläggande implementeringen av Javas kartgränssnitt genom att lagra data i (nyckel, värde) par för att komma åt dem med ett index av en annan typ. Ett objekt listas som en nyckel (index) till ett annat objekt (värde). Om du försöker infoga dubblettnyckeln kommer den att ersätta elementet i motsvarande nyckel. För att kunna använda denna klass och dess metoder är det nödvändigt att importera java.util.HashMap paket eller dess superklass.
Det finns ett flertal sätt att iterera över HashMap, varav 5 är listade nedan:
- Iterera genom en HashMap EntrySet använder iteratorer.
- Iterera genom HashMap KeySet använder Iterator.
- Iterera HashMap med hjälp av för varje slinga .
- Itererar genom en HashMap med Lambda Expressions.
- Gå igenom en HashMap med hjälp av Stream API .
Metod 1: Använd en for-loop för att iterera genom en HashMap. Itererar en HashMap genom en for-loop för att använda getValue() och getKey() funktioner.
Genomförande: I koden nedan, entrySet() används för att returnera en uppsättningsvy av mappade element. Från koden nedan:
- set.getValue() för att få värde från mängden.
- set.getKey() för att hämta nyckel från uppsättningen.
Java
siffrorna i alfabetet
// 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());> >}> >}> }> |
>
>Produktion
P = Python A = Angular H = Hibernate J = Java>
Metod 2: Använd en forEach för att iterera genom en HashMap. I den andra metoden, funktionen forEach för att iterera nyckel-värde-paren.
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(nyckel +>' = '> + value));> >}> }> |
>
>Produktion
P = Python A = Angular H = Hibernate J = Java>
Metod 3: Använd en iterator för att iterera genom en HashMap. I den här metoden används iterator för att iterera varje mappat par i HashMap som visas i Java-programmet nedan.
Exempel:
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());> >}> >}> }> |
>
>
1 = First 2 = Second 3 = Third 4 = Fourth>
Metod 4: Iterera genom en HashMap med Lambda Expressions
Ett lambdauttryck är ett kort kodblock som tar in parametrar och returnerar ett värde. Lambda-uttryck liknar metoder, men de behöver inget namn, och de kan implementeras direkt i en metod. Det enklaste lambdauttrycket innehåller en enda parameter och ett uttryck:
parameter ->uttryck>
Exempel:
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(nyckel +>' = '> + value));> >}> }> |
>
>Produktion
A = Apple B = Basketball C = Cat D = Dog>
Metod 5: Gå igenom en HashMap med Stream API
Exemplet nedan itererar över en HashMap med hjälp av stream API.
Stream API används för att bearbeta samlingar av objekt.
Strömmar ändrar inte den ursprungliga datastrukturen, de ger bara resultatet enligt pipelinemetoderna
Steg :
- Första åkallan entrySet().stream() metod som intur returnerar Stream-objekt.
- Nästa för varje metod , som itererar indataobjekten som finns i entrySet(). Se koden nedan.
Exempel:
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()));> >}> }> |
>
>Produktion
1 : First 2 : Second 3 : Third 4 : Fourth>