HashMap er en del af Javas samling, der giver den grundlæggende implementering af Javas kortgrænseflade ved at gemme dataene i (nøgle, værdi) par for at få adgang til dem med et indeks af en anden type. Et objekt er angivet som en nøgle (indeks) til et andet objekt (værdi). Hvis du forsøger at indsætte duplikatnøglen, vil den erstatte elementet i den tilsvarende nøgle. For at bruge denne klasse og dens metoder er det nødvendigt at importere java.util.HashMap pakke eller dens superklasse.
Der er et utal af måder at iterere over HashMap, hvoraf 5 er angivet som nedenfor:
- Gentag gennem et HashMap EntrySet ved hjælp af iteratorer.
- Gentag gennem HashMap Nøglesæt ved hjælp af Iterator.
- Gentag HashMap ved hjælp af for hver sløjfe .
- Iteration gennem et HashMap ved hjælp af Lambda Expressions.
- Sløjfe gennem et HashMap vha Stream API .
Metode 1: Brug en for-løkke til at iterere gennem et HashMap. Iterering af et HashMap gennem en for-løkke til brug getValue() og getKey() funktioner.
Implementering: I koden nedenfor, entrySet() bruges til at returnere et sæt visning af tilknyttede elementer. Fra nedenstående kode:
- set.getValue() for at få værdi fra sættet.
- set.getKey() for at hente nøgle fra sættet.
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());> >}> >}> }> |
>
>
gentage en liste i javaProduktion
P = Python A = Angular H = Hibernate J = Java>
Metode 2: Brug en forEach til at iterere gennem et HashMap. I den anden metode, funktionen forHver til at iterere nøgleværdi-parrene.
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));> >}> }> |
samling java
>
>Produktion
P = Python A = Angular H = Hibernate J = Java>
Metode 3: Brug af en iterator til at iterere gennem et HashMap. I denne metode bruges iterator til at iterere hvert kortlagt par i HashMap som vist i nedenstående java-program.
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());> >}> >}> }> |
>
lighed af strenge i java
>
1 = First 2 = Second 3 = Third 4 = Fourth>
Metode 4: Iteration gennem et HashMap ved hjælp af Lambda-udtryk
Et lambda-udtryk er en kort kodeblok, der tager parametre ind og returnerer en værdi. Lambda-udtryk ligner metoder, men de behøver ikke et navn, og de kan implementeres direkte i en metodes krop. Det enkleste lambda-udtryk indeholder en enkelt parameter og et udtryk:
parameter ->udtryk>
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));> >}> }> |
>
>Produktion
A = Apple B = Basketball C = Cat D = Dog>
Metode 5: Gå gennem et HashMap ved hjælp af Stream API
sortere bunke
Nedenstående eksempel itererer over et HashMap ved hjælp af stream API.
Stream API bruges til at behandle samlinger af objekter.
Strømme ændrer ikke den originale datastruktur, de giver kun resultatet i henhold til de pipelinede metoder
Trin:
- Første påkald entrySet().stream() metode, som inturn returnerer Stream-objekt.
- Næste for hver metode , som itererer de inputobjekter, der er i entrySet(). Se nedenstående kode.
Eksempel:
Java
strengværdi af
// 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()));> >}> }> |
>
>Produktion
1 : First 2 : Second 3 : Third 4 : Fourth>