„HashMap“ yra „Java“ kolekcijos dalis, teikianti pagrindinį „Java“ žemėlapio sąsajos įgyvendinimą, saugant duomenis poromis (raktas, reikšmė), kad juos būtų galima pasiekti naudojant kito tipo indeksą. Vienas objektas yra įtrauktas į kito objekto (reikšmės) raktą (indeksą). Jei bandysite įterpti dublikatą, jis pakeis atitinkamo rakto elementą. Norint naudoti šią klasę ir jos metodus, būtina importuoti java.util.HashMap paketą arba jo superklasę.
Yra daug būdų, kaip kartoti HashMap, iš kurių 5 yra išvardyti toliau:
- Pakartokite naudodami HashMap EntrySet naudojant Iteratorius.
- Pakartokite per HashMap KeySet naudojant Iteratorių.
- Pakartokite HashMap naudodami už kiekvieną kilpą .
- Iteravimas per HashMap naudojant Lambda išraiškas.
- Pereikite per HashMap naudodami Srautinio API .
1 būdas: naudokite for kilpą, kad galėtumėte kartoti HashMap. HashMap kartojimas naudojant for kilpą getValue() ir getKey () funkcijas.
Įgyvendinimas: Žemiau pateiktame kode, įrašasSet() naudojamas norint grąžinti susietų elementų rinkinį. Iš toliau pateikto kodo:
- set.getValue(), kad gautumėte vertę iš rinkinio.
- set.getKey(), kad gautumėte raktą iš rinkinio.
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());> >}> >}> }> |
>
>Išvestis
P = Python A = Angular H = Hibernate J = Java>
2 metodas: ForEach naudojimas kartojimui per HashMap. Taikant antrąjį metodą, funkcija forEach rakto-reikšmių poroms kartoti.
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(klavišas +>' = '> + value));> >}> }> |
>
kas yra java stack
>Išvestis
P = Python A = Angular H = Hibernate J = Java>
3 būdas: iteratoriaus naudojimas kartojimui per HashMap. Taikant šį metodą, iteratorius naudojamas kiekvienai susietai porai HashMap kartoti, kaip parodyta toliau pateiktoje Java programoje.
Pavyzdys:
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>
4 būdas: kartojimas per HashMap naudojant Lambda išraiškas
Lambda išraiška yra trumpas kodo blokas, kuris paima parametrus ir grąžina reikšmę. Lambda išraiškos yra panašios į metodus, tačiau joms nereikia pavadinimo ir jas galima įdiegti tiesiai į metodo turinį. Paprasčiausią lambda išraišką sudaro vienas parametras ir išraiška:
parameter ->išraiška>
Pavyzdys:
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(klavišas +>' = '> + value));> >}> }> |
>
>Išvestis
A = Apple B = Basketball C = Cat D = Dog>
5 būdas: Pereikite per HashMap naudodami Stream API
Toliau pateiktame pavyzdyje pakartojama HashMap naudojant srauto API.
Srauto API naudojama objektų rinkiniams apdoroti.
Srautai nekeičia pradinės duomenų struktūros, jie tik pateikia rezultatą pagal konvejerinius metodus
Žingsniai:
- Pirmas iškvietimas entrySet().stream() metodas, kuris grąžina srauto objektą.
- Kitas kiekvienam metodui , kuri kartoja įvesties objektus, esančius enterSet(). Žiūrėkite žemiau esantį kodą.
Pavyzdys:
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()));> >}> }> |
>
>Išvestis
1 : First 2 : Second 3 : Third 4 : Fourth>