Yleensä niitä on viisi tapoja iteroida yli a Kartta Javassa. Tässä artikkelissa keskustelemme niistä kaikista ja tarkastelemme myös niiden etuja ja haittoja.
Ensinnäkin me ei voi iteroida karttaa suoraan käyttämällä iteraattorit , koska kartta ei ole Kokoelma. Ennen kuin menet pidemmälle, sinun on myös tiedettävä hieman Kartta.Syöttö käyttöliittymä.
Koska kaikki Java-kartat toteutetaan Kartta käyttöliittymä, seuraavat tekniikat toimivat missä tahansa karttatoteutuksessa (HashMap , TreeMap , LinkedHashMap , Hashtable jne.)
1. Iterointi Map.entrySet():n kautta For-Each-silmukalla:
Map.entrySet() menetelmä palauttaa kokoelmanäkymän( Aseta
Java
saira banu näyttelijä
// 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());> > }> }> |
>
>
Lähtö:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
2. Iterointi avainten tai arvojen yli käyttämällä keySet()- ja values()-menetelmiä
Map.keySet() menetelmä palauttaa tämän kartan sisältämien avainten joukkonäkymän ja Map.values() menetelmä palauttaa kokoelmanäkymän tämän kartan sisältämistä arvoista. Joten jos tarvitset vain avaimia tai arvoja kartasta, voit iteroida avainjoukon tai arvojen kautta käyttämällä jokaista silmukkaa. Alla on Java-ohjelma sen osoittamiseksi.
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);> > }> }> |
>
>
Lähtö:
key: Quiz key: Practice key: GFG key: Code value: www.techcodeview.com value: practice.techcodeview.com value: techcodeview.com value: code.techcodeview.com>
3. Iterointi iteraattorien avulla Kartta.Syöttö
Tämä menetelmä on hieman samanlainen kuin ensimmäinen. Ensimmäisessä menetelmässä käytämme jokaista silmukkaa Map.Entryn yli, mutta tässä käytämme iteraattorit . Iteraattorien käyttämisessä Map.Entryn sijaan on oma etunsa, esim. voimme poistaa merkintöjä kartalta iteroinnin aikana soittamalla iterator.remove() menetelmä.
Java
java prioriteettijono
// 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());> > }> > }> }> |
>
>
java-suunnittelukuvio
Lähtö:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
4. ForEach(action)-menetelmän käyttäminen:
Java 8:ssa voit iteroida karttaa käyttämällä Map.forEach(toiminta) menetelmä ja käyttö lambda ilmaisu . Tämä tekniikka on puhdas ja nopea.
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));> > > }> }> |
>
kuinka löytää estetyt numerot Androidista
>
Lähtö:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
5. Iterointi avainten yli ja arvojen etsiminen (tehoton)
Tässä ensin kierretään näppäimien yli (käyttäen Map.keySet() menetelmä) ja etsi arvo (käyttäen Map.get(avain) menetelmä) jokaiselle avaimelle. Tätä menetelmää ei käytetä käytännössä, koska se on melko hidas ja tehoton, koska arvojen saaminen avaimella voi olla aikaa vievää.
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);> > }> > }> }> |
>
>
Lähtö:
Key = Quiz, Value = www.techcodeview.com Key = Practice, Value = practice.techcodeview.com Key = GFG, Value = techcodeview.com Key = Code, Value = code.techcodeview.com>
Viitteet: Stackoverflow