Det er generelt fem måter å iterere over en Kart i Java. I denne artikkelen vil vi diskutere dem alle og også se på fordeler og ulemper.
Først av alt, vi kan ikke iterer et kart direkte ved å bruke iteratorer , fordi Map ikke er det Samling. Også før du går videre, må du vite litt om Kart.Entry grensesnitt.
Siden alle kart i Java implementerer Kart grensesnitt, vil følgende teknikker fungere for enhver kartimplementering ( HashMap , TreeMap , LinkedHashMap , Hashtable , etc.)
1. Iterering over Map.entrySet() ved å bruke For-Each-løkke:
Map.entrySet() metoden returnerer en samlingsvisning( Sett
Java
hvordan lage en matrise i java
// Java program to demonstrate iteration over> // Map.entrySet() entries using for-each loop> > import> java.util.Map;> import> java.util.HashMap;> > class> IterationDemo> {> > public> static> void> main(String[] arg)> > {> > Map gfg => new> HashMap();> > > // enter name/url pair> > gfg.put(> 'GFG'> ,> 'techcodeview.com'> );> > gfg.put(> 'Practice'> ,> 'practice .techcodeview.com> );> > gfg.put(> 'Code'> ,> 'code .techcodeview.com> );> > gfg.put(> 'Quiz'> ,> 'www .techcodeview.com> );> > > // using for-each loop for iteration over Map.entrySet()> > for> (Map.Entry entry : gfg.entrySet())> > System.out.println(> 'Key = '> + entry.getKey() +> > ', Value = '> + entry.getValue());> > }> }> |
>
>
Produksjon:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
2. Iterering over nøkler eller verdier ved hjelp av keySet() og values() metoder
Map.keySet() metoden returnerer en Set-visning av nøklene i dette kartet og Map.values() metoden returnerer en samlingsvisning av verdiene i dette kartet. Så hvis du bare trenger nøkler eller verdier fra kartet, kan du iterere over nøkkelsett eller verdier ved å bruke for hver løkke. Nedenfor er java-programmet for å demonstrere det.
Java
hvis annet hvis annet hvis java
// Java program to demonstrate iteration over> // Map using keySet() and values() methods> > import> java.util.Map;> import> java.util.HashMap;> > class> IterationDemo> {> > public> static> void> main(String[] arg)> > {> > Map gfg => new> HashMap();> > > // enter name/url pair> > gfg.put(> 'GFG'> ,> 'techcodeview.com'> );> > gfg.put(> 'Practice'> ,> 'practice .techcodeview.com> );> > gfg.put(> 'Code'> ,> 'code .techcodeview.com> );> > gfg.put(> 'Quiz'> ,> 'www .techcodeview.com> );> > > // using keySet() for iteration over keys> > for> (String name : gfg.keySet())> > System.out.println(> 'key: '> + name);> > > // using values() for iteration over values> > for> (String url : gfg.values())> > System.out.println(> 'value: '> + url);> > }> }> |
>
>
Produksjon:
key: Quiz key: Practice key: GFG key: Code value: www.techcodeview.com value: practice.techcodeview.com value: techcodeview.com value: code.techcodeview.com>
3. Iterering ved hjelp av iteratorer over Kart.Entry
Denne metoden ligner litt på den første. I den første metoden bruker vi for-hver loop over Map.Entry, men her bruker vi iteratorer . Å bruke iteratorer over Map.Entry har sin egen fordel, dvs. vi kan fjerne oppføringer fra kartet under iterasjon ved å ringe iterator.remove() metode.
Java
// Java program to demonstrate iteration over> // Map using keySet() and values() methods> > import> java.util.Map;> import> java.util.HashMap;> import> java.util.Iterator;> > class> IterationDemo> {> > public> static> void> main(String[] arg)> > {> > Map gfg => new> HashMap();> > > // enter name/url pair> > gfg.put(> 'GFG'> ,> 'techcodeview.com'> );> > gfg.put(> 'Practice'> ,> 'practice .techcodeview.com> );> > gfg.put(> 'Code'> ,> 'code .techcodeview.com> );> > gfg.put(> 'Quiz'> ,> 'www .techcodeview.com> );> > > // using iterators> > Iterator itr = gfg.entrySet().iterator();> > > while> (itr.hasNext())> > {> > Map.Entry entry = itr.next();> > System.out.println(> 'Key = '> + entry.getKey() +> > ', Value = '> + entry.getValue());> > }> > }> }> |
>
>
eksempel på javascript
Produksjon:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
4. Bruke forEach(action)-metoden:
I Java 8 kan du iterere et kart ved hjelp av Map.forEach(action) metode og bruk lambda uttrykk . Denne teknikken er ren og rask.
Java
// Java code illustrating iteration> // over map using forEach(action) method> > import> java.util.Map;> import> java.util.HashMap;> > class> IterationDemo> {> > public> static> void> main(String[] arg)> > {> > Map gfg => new> HashMap();> > > // enter name/url pair> > gfg.put(> 'GFG'> ,> 'techcodeview.com'> );> > gfg.put(> 'Practice'> ,> 'practice .techcodeview.com> );> > gfg.put(> 'Code'> ,> 'code .techcodeview.com> );> > gfg.put(> 'Quiz'> ,> 'www .techcodeview.com> );> > > // forEach(action) method to iterate map> > gfg.forEach((k,v) ->System.out.println(> 'Key = '> > + k +> ', Value = '> + v));> > > }> }> |
>
>
Utgang:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
5. Iterering over nøkler og søk etter verdier (ineffektiv)
Her går vi først over tastene (ved å bruke Map.keySet() metode) og søk deretter etter verdi(med Map.get(key) metode) for hver nøkkel. Denne metoden brukes ikke i praksis da den er ganske treg og ineffektiv da det kan være tidkrevende å hente verdier med en nøkkel.
Java
char til streng java
// Java program to demonstrate iteration> // over keys and searching for values> > import> java.util.Map;> import> java.util.HashMap;> > class> IterationDemo> {> > public> static> void> main(String[] arg)> > {> > Map gfg => new> HashMap();> > > // enter name/url pair> > gfg.put(> 'GFG'> ,> 'techcodeview.com'> );> > gfg.put(> 'Practice'> ,> 'practice .techcodeview.com> );> > gfg.put(> 'Code'> ,> 'code .techcodeview.com> );> > gfg.put(> 'Quiz'> ,> 'www .techcodeview.com> );> > > // looping over keys> > for> (String name : gfg.keySet())> > {> > // search for value> > String url = gfg.get(name);> > System.out.println(> 'Key = '> + name +> ', Value = '> + url);> > }> > }> }> |
>
>
Produksjon:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
Referanser: Stackoverflow