Na splošno obstajajo pet načini ponavljanja čez a Zemljevid v Javi. V tem članku bomo razpravljali o vseh njih ter preučili njihove prednosti in slabosti.
Najprej mi ne more ponovi zemljevid neposredno z uporabo iteratorji , ker Map niso Zbirka. Tudi preden greste naprej, morate vedeti nekaj o Zemljevid.Vstop vmesnik.
Ker vsi zemljevidi v Javi izvajajo Zemljevid vmesnik, bodo naslednje tehnike delovale za katero koli implementacijo zemljevida (HashMap, TreeMap, LinkedHashMap, Hashtable itd.)
1. Ponavljanje po Map.entrySet() z uporabo zanke For-Each:
Map.entrySet() metoda vrne pogled zbirke( Set
Java
setinterval javascript
// 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());> >}> }> |
>
>
Izhod:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
2. Ponavljanje po ključih ali vrednostih z uporabo metod keySet() in values().
Map.keySet() metoda vrne nastavljeni pogled ključev, ki jih vsebuje ta zemljevid in Map.values() metoda vrne pogled zbirke vrednosti, ki jih vsebuje ta zemljevid. Torej, če potrebujete samo ključe ali vrednosti iz zemljevida, lahko ponavljate čez keySet ali vrednosti z uporabo zank for-each. Spodaj je program java za predstavitev.
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);> >}> }> |
>
>
Izhod:
key: Quiz key: Practice key: GFG key: Code value: www.techcodeview.com value: practice.techcodeview.com value: techcodeview.com value: code.techcodeview.com>
3. Ponavljanje z uporabo iteratorjev Zemljevid.Vstop
Ta metoda je nekoliko podobna prvi. Pri prvi metodi uporabljamo zanko for-each nad Map.Entry, tukaj pa uporabljamo iteratorji . Uporaba iteratorjev pred Map.Entry ima svojo prednost, tj. med iteracijo lahko odstranimo vnose z zemljevida s klicem iterator.remove() metoda.
Java
oblazinjenje css
// 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());> >}> >}> }> |
>
>
Izhod:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
4. Uporaba metode forEach(action):
V Javi 8 lahko ponovite zemljevid z uporabo Map.forEach(action) metoda in uporaba lambda izraz . Ta tehnika je čista in hitra.
Java
pretvori int v niz 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));> > >}> }> |
>
greatandhra
>
Izhod:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
5. Ponavljanje po ključih in iskanje vrednosti (neučinkovito)
Tukaj najprej preletimo ključe (z uporabo Map.keySet() metoda) in nato poiščite vrednost (z uporabo Map.get(ključ) metoda) za vsak ključ. Ta metoda se v praksi ne uporablja, saj je precej počasna in neučinkovita, saj je pridobivanje vrednosti po ključu lahko zamudno.
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);> >}> >}> }> |
>
>
Izhod:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
Reference: Preobremenitev