Hvordan iterere HashMap i Java?

HashMap er en del av Javas samling som gir den grunnleggende implementeringen av kartgrensesnittet til Java ved å lagre dataene i (nøkkel, verdi) par for å få tilgang til dem med en indeks av en annen type. Ett objekt er oppført som en nøkkel (indeks) til et annet objekt (verdi). Hvis du prøver å sette inn duplikatnøkkelen, vil den erstatte elementet til den tilsvarende nøkkelen. For å bruke denne klassen og dens metoder, er det nødvendig å importere java.util.HashMap pakken eller dens superklasse.

Det er en rekke måter å iterere over HashMap, hvorav 5 er oppført som nedenfor:

  1. Iterer gjennom et HashMap EntrySet ved hjelp av iteratorer.
  2. Iterer gjennom HashMap KeySet ved hjelp av Iterator.
  3. Iterer HashMap ved å bruke for hver løkke .
  4. Iterering gjennom et HashMap ved hjelp av Lambda Expressions.
  5. Gå gjennom et HashMap ved å bruke Stream API .

Metode 1: Bruk en for-løkke for å iterere gjennom et HashMap. Iterering av et HashMap gjennom en for-løkke for å bruke getValue() og getKey() funksjoner.

Gjennomføring: I koden gitt nedenfor, entrySet() brukes til å returnere et sett visning av kartlagte elementer. Fra koden gitt nedenfor:

  • set.getValue() for å få verdi fra settet.
  • set.getKey() for å hente nøkkel fra settet.

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());> > }> > }> }>

Produksjon

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

Metode 2: Bruk en forEach til å iterere gjennom et HashMap. I den andre metoden, funksjonen forHver for å iterere nøkkel-verdi-parene.

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(tast +> ' = '> + value));> > }> }>

Produksjon

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

Metode 3: Bruke en iterator for å iterere gjennom et HashMap. I denne metoden brukes iterator til å iterere hvert kartlagt par i HashMap som vist i Java-programmet nedenfor.

Eksempel:

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());> > }> > }> }>


Produksjon

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

Metode 4: Iterering gjennom et HashMap ved hjelp av Lambda-uttrykk

Et lambda-uttrykk er en kort kodeblokk som tar inn parametere og returnerer en verdi. Lambda-uttrykk ligner på metoder, men de trenger ikke et navn, og de kan implementeres rett i kroppen til en metode. Det enkleste lambda-uttrykket inneholder en enkelt parameter og et uttrykk:

parameter ->uttrykk 

Eksempel:

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(tast +> ' = '> + value));> > }> }>

Produksjon

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

Metode 5: Gå gjennom en HashMap ved hjelp av Stream API

Eksemplet nedenfor itererer over et HashMap ved hjelp av stream API.

Stream API brukes til å behandle samlinger av objekter.

Strømmer endrer ikke den opprinnelige datastrukturen, de gir bare resultatet i henhold til pipelinemetodene

Trinn :

  • Første påkalling entrySet().stream() metode som inturn returnerer Stream-objekt.
  • Neste for hver metode , som itererer inndataobjektene som er i entrySet(). Se koden nedenfor.

Eksempel:

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()));> > }> }>

Produksjon

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