logo

Jak iterovat HashMap v Javě?

HashMap je součástí kolekce Java poskytující základní implementaci rozhraní Map Java tím, že ukládá data do párů (klíč, hodnota), aby k nim bylo možné přistupovat pomocí indexu jiného typu. Jeden objekt je uveden jako klíč (index) k jinému objektu (hodnotě). Pokud se pokusíte vložit duplicitní klíč, nahradí prvek odpovídajícího klíče. Aby bylo možné tuto třídu a její metody používat, je nutné importovat java.util.HashMap balíčku nebo jeho nadtřídy.

Existuje mnoho způsobů iterace přes HashMap, z nichž 5 je uvedeno níže:



  1. Iterujte přes HashMap Vstupní sada pomocí Iterátorů.
  2. Iterujte přes HashMap KeySet pomocí Iteratoru.
  3. Iterujte HashMap pomocí pro každou smyčku .
  4. Iterace přes HashMap pomocí výrazů Lambda.
  5. Procházejte HashMap pomocí Stream API .

Metoda 1: Použití smyčky for k iteraci HashMap. Iterace HashMap přes cyklus for k použití getValue() a getKey() funkcí.

Implementace: V níže uvedeném kódu entrySet() slouží k vrácení nastaveného pohledu na mapované prvky. Z níže uvedeného kódu:

  • set.getValue() k získání hodnoty ze sady.
  • set.getKey() pro získání klíče ze sady.

Jáva








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

>

>

Výstup

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

Metoda 2: Použití forEach k iteraci přes HashMap. Ve druhé metodě funkce forEach iteruje páry klíč–hodnota.

Jáva




// 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ávesa +>' = '> + value));> >}> }>

>

>

Výstup

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

Metoda 3: Použití iterátoru k iteraci přes HashMap. V této metodě se iterátor používá k iteraci každého mapovaného páru v HashMap, jak je znázorněno níže v programu Java.

Příklad:

Jáva




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

>

>


Výstup

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

Metoda 4: Iterace přes HashMap pomocí výrazů Lambda

Výraz lambda je krátký blok kódu, který přebírá parametry a vrací hodnotu. Lambda výrazy jsou podobné metodám, ale nepotřebují název a lze je implementovat přímo do těla metody. Nejjednodušší výraz lambda obsahuje jeden parametr a výraz:

parameter ->výraz>

Příklad:

Jáva




// 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ávesa +>' = '> + value));> >}> }>

abeceda číslovaná
>

>

Výstup

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

Metoda 5: Projděte HashMap pomocí Stream API

Níže uvedený příklad iteruje přes HashMap s pomocí streamového API.

Stream API se používá ke zpracování kolekcí objektů.

Streamy nemění původní datovou strukturu, poskytují pouze výsledek podle zřetězených metod

kroky:

  • První vyvolání entrySet().stream() metoda, která vrací objekt Stream.
  • další pro každou metodu , který iteruje vstupní objekty, které jsou v entrySet(). Viz níže uvedený kód.

Příklad:

Jáva




// 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ýstup

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