HashMap on osa Java-kokoelmaa, joka tarjoaa Javan karttarajapinnan perustoteutuksen tallentamalla tiedot (Key, Value) -pareihin, jotta niitä voidaan käyttää toisen tyyppisen indeksin avulla. Yksi objekti on listattu avaimeksi (indeksiksi) toiselle objektille (arvo). Jos yrität lisätä kaksoisavaimen, se korvaa vastaavan avaimen elementin. Tämän luokan ja sen menetelmien käyttäminen edellyttää tuontia java.util.HashMap paketti tai sen huippuluokka.
On olemassa useita tapoja iteroida HashMapissa, joista 5 on lueteltu alla:
- Iteroi HashMapin kautta EntrySet käyttämällä iteraattoreita.
- Iteroi HashMapin kautta KeySet käyttämällä Iteraattoria.
- Toista HashMap käyttämällä jokaiselle silmukalle .
- Iterointi HashMapin kautta käyttämällä Lambda-lausekkeita.
- Selaa HashMapia käyttämällä Stream API .
Tapa 1: For-silmukan käyttäminen HashMapin iterointiin. HashMapin iterointi for-silmukan kautta käytettäväksi getValue() ja getKey() toimintoja.
Toteutus: Alla annetussa koodissa entrySet() käytetään palauttamaan kuvattujen elementtien joukkonäkymä. Alla annetusta koodista:
- set.getValue() saadaksesi arvon joukosta.
- set.getKey() saadaksesi avaimen joukosta.
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());> >}> >}> }> |
>
>Lähtö
P = Python A = Angular H = Hibernate J = Java>
Tapa 2: ForEachin käyttö HashMapin iterointiin. Toisessa menetelmässä forEach-funktio iteroi avainarvo-pareja.
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(näppäin +>' = '> + value));> >}> }> |
>
>Lähtö
P = Python A = Angular H = Hibernate J = Java>
Tapa 3: Iteraattorin käyttö HashMapin iterointiin. Tässä menetelmässä iteraattoria käytetään iteroimaan jokaista kartoitettua paria HashMapissa alla olevan java-ohjelman mukaisesti.
Esimerkki:
Java
java vs c++
// 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>
Tapa 4: Iterointi HashMapin kautta käyttämällä Lambda-lausekkeita
Lambda-lauseke on lyhyt koodilohko, joka ottaa parametrit ja palauttaa arvon. Lambdalausekkeet ovat samanlaisia kuin metodit, mutta ne eivät tarvitse nimeä, vaan ne voidaan toteuttaa suoraan metodin rungossa. Yksinkertaisin lambda-lauseke sisältää yhden parametrin ja lausekkeen:
parameter ->ilmaisu>
Esimerkki:
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(näppäin +>' = '> + value));> >}> }> |
>
>
js-joukkoLähtö
A = Apple B = Basketball C = Cat D = Dog>
Menetelmä 5: Selaa HashMapia Stream API:n avulla
Alla oleva esimerkki toistuu HashMapin yli stream API:n avulla.
Stream API:ta käytetään objektikokoelmien käsittelyyn.
Virrat eivät muuta alkuperäistä tietorakennetta, ne tarjoavat vain tuloksen liukuhihnamenetelmien mukaisesti
Askeleet :
- Ensimmäinen kutsu entrySet().stream() menetelmä, joka palauttaa Stream-objektin.
- Seuraava jokaiselle menetelmälle , joka toistaa syöteobjektit, jotka ovat entrySet(). Katso alla oleva koodi.
Esimerkki:
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()));> >}> }> |
>
>Lähtö
1 : First 2 : Second 3 : Third 4 : Fourth>