HashMap je súčasťou kolekcie Java, ktorá poskytuje základnú implementáciu mapového rozhrania Java ukladaním údajov do párov (kľúč, hodnota), aby k nim bolo možné pristupovať pomocou indexu iného typu. Jeden objekt je uvedený ako kľúč (index) k inému objektu (hodnote). Ak sa pokúsite vložiť duplicitný kľúč, nahradí prvok zodpovedajúceho kľúča. Aby bolo možné použiť túto triedu a jej metódy, je potrebné importovať java.util.HashMap balík alebo jeho nadtriedu.
Existuje mnoho spôsobov iterácie cez HashMap, z ktorých 5 je uvedených nižšie:
- Iterujte cez HashMap EntrySet pomocou Iterátorov.
- Iterujte cez HashMap KeySet pomocou Iterátora.
- Iterujte HashMap pomocou pre každú slučku .
- Iterácia cez HashMap pomocou výrazov Lambda.
- Prejdite cez HashMap pomocou Stream API .
Metóda 1: Použitie cyklu for na iteráciu cez HashMap. Iterovanie HashMap cez cyklus for na použitie getValue() a getKey() funkcie.
Implementácia: V nižšie uvedenom kóde entrySet() sa používa na vrátenie nastaveného pohľadu na mapované prvky. Z kódu uvedeného nižšie:
- set.getValue() na získanie hodnoty z množiny.
- set.getKey() na získanie kľúča zo sady.
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());> >}> >}> }> |
tostring java
>
>Výkon
P = Python A = Angular H = Hibernate J = Java>
Metóda 2: Použitie forEach na iteráciu cez HashMap. V druhej metóde funkcia forEach iteruje páry kľúč – hodnota.
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(kláves +>' = '> + value));> >}> }> |
>
>Výkon
P = Python A = Angular H = Hibernate J = Java>
Metóda 3: Použitie iterátora na iteráciu cez HashMap. V tejto metóde sa iterátor používa na iteráciu každého mapovaného páru v HashMap, ako je znázornené v programe Java nižšie.
Príklad:
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>
Metóda 4: Iterácia cez HashMap pomocou výrazov Lambda
Výraz lambda je krátky blok kódu, ktorý preberá parametre a vracia hodnotu. Lambda výrazy sú podobné metódam, ale nepotrebujú názov a možno ich implementovať priamo do tela metódy. Najjednoduchší výraz lambda obsahuje jeden parameter a výraz:
parameter ->výraz>
Príklad:
zlučovací druh
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(kláves +>' = '> + value));> >}> }> |
>
>
príklady vzorového kódu javascriptVýkon
A = Apple B = Basketball C = Cat D = Dog>
Metóda 5: Prejdite cez HashMap pomocou Stream API
Nižšie uvedený príklad iteruje cez HashMap pomocou streamového API.
Stream API sa používa na spracovanie kolekcií objektov.
Prúdy nemenia pôvodnú dátovú štruktúru, poskytujú iba výsledok podľa zreťazených metód
Kroky:
- Prvé vyvolanie entrySet().stream() metóda, ktorá vráti objekt Stream.
- Ďalšie pre každú metódu , ktorý iteruje vstupné objekty, ktoré sú v entrySet(). Pozrite si nižšie uvedený kód.
Príklad:
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()));> >}> }> |
>
>Výkon
1 : First 2 : Second 3 : Third 4 : Fourth>