logo

Kako ponoviti Map v Javi

V Javi je iteracijo po Map mogoče izvesti na različne načine. Ne pozabite, da zemljevida ne moremo ponavljati neposredno z uporabo iteratorji , ker vmesnik zemljevida ni del zbirke. Vsi zemljevidi v Javi izvajajo Zemljevid vmesnik. V Javi obstajajo naslednje vrste zemljevidov:

  • HashMap
  • TreeMap
  • LinkedHashMap

Zemljevid ni zbirka, vendar vseeno upoštevajte okvir zbirk. Zato je zemljevid vmesnik, ki ne razširja vmesnika zbirk.

Iterator

Iterator je vmesnik, ki se uporablja za iteracijo po zbirki. Zavzame mesto Enumeration v Java Collections Framework. Razlika med iteratorjem in naštevanjem je:

  • Iterator lahko prečka podedovane in nepodedovane elemente, medtem ko lahko Enumeration prečka samo podedovane elemente.
  • Iterator je hiter za napake, medtem ko Enumeration ni hiter za napake.

Ogledi zbirke

Metoda pogledov zbirke omogoča ogled zemljevida kot zbirke na naslednje načine:

    keySet:Je niz ključev, ki jih vsebuje zemljevid.vrednote:Je zbirka vrednosti, ki jih vsebuje zemljevid.entrySet:Je nabor parov ključ-vrednost v zemljevidu.

Vmesnik zemljevida ima tudi majhen ugnezdeni vmesnik, imenovan Zemljevid.vnos . Pogled zbirke zagotavlja edino sredstvo za ponavljanje zemljevida.

analogno komunikacijo

Uporaba vmesnika Iterator

Primer iteracije nad HashMap

 public static void main(String args[]) { HashMap hm = new HashMap(); //implements map interface hm.put(110,'Ravi'); hm.put(120,'Prateek'); hm.put(130, 'Davesh'); hm.put(140, 'Kamal'); hm.put(150, 'Pawan'); Iterator it = hm.keySet().iterator(); //keyset is a method while(it.hasNext()) { int key=(int)it.next(); System.out.println('Roll no.: '+key+' name: '+hm.get(key)); } } } 

Izhod:

poštar
 Roll no.: 130 name: Davesh Roll no.: 150 name: Pawan Roll no.: 120 name: Prateek Roll no.: 140 name: Kamal Roll no.: 110 name: Ravi 

Uporaba metod keyset() in value().

nabor ključev(): A keySet() metoda HashMap razred se uporablja za iteracijo po ključih, ki jih vsebuje zemljevid. Vrne nastavljen pogled tipk.

Sintaksa

 Set keyset() 

vrednote(): A vrednote() metoda HashMap razred se uporablja za ponavljanje vrednosti, ki jih vsebuje zemljevid. Vrne pogled zbirke vrednosti.

Sintaksa

 Collection values() 

Primer

odstranjevanje s seznama matrik
 import java.util.Map; import java.util.HashMap; class IterationExample2 { public static void main(String[] arg) { Map map = new HashMap(); map.put('Gujarat', 'Gandhi Nagar'); map.put('Uttar Pradesh', 'Lucknow'); map.put('Sikkim', 'Ganagtok'); for (String State : map.keySet()) //using keyset() method for iteration over keySet System.out.println('State: ' + State); for (String Capital : map.values()) //using values() for iteration over keys System.out.println('Capiatl: ' + Capital); } } 

Izhod:

 State: Gujarat State: Sikkim State: Uttar Pradesh Capital: Gandhi Nagar Capital: Ganagtok Capital: Lucknow 

Uporaba Map.entrymethod

Map.Entry je vmesnik. Vrne pogled zbirke zemljevida, katerega elementi so tega razreda.

Metoda map.entrySet() vrne pogled Set za preslikavo, ki jo vsebuje zemljevid. Spremembe na zemljevidu se odražajo tudi v kompletu in obratno. Podpira tudi odstranjevanje elementov, ki odstrani ustrezno preslikavo z zemljevida.

Sintaksa

vrste podatkov sql
 Set<map.entry> entrySet() </map.entry>

Primer

 import java.util.*; class IterationExample3 { public static void main(String[] arg) { Map map = new HashMap(); map.put(&apos;Cookies&apos;, 90.87f); map.put(&apos;Dry Fruits&apos;, 434.23f); map.put(&apos;Oats&apos;, 220.00f); map.put(&apos;Chocolate&apos;, 70.89f); for (Map.Entry entry : map.entrySet()) //using map.entrySet() for iteration { //returns keys and values respectively System.out.println(&apos;Item: &apos; + entry.getKey() + &apos;, Price: &apos; + entry.getValue()); } } } 

Izhod:

 Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89 

Ponavljanje po ključih in pridobivanje vrednosti

Primer

V naslednjem primeru najprej iteriramo po ključih in nato pridobimo vrednosti.

 import java.util.*; class IterationExample4 { public static void main(String[] arg) { Map map = new HashMap(); map.put(&apos;Sumit&apos;, &apos;Singh&apos;); map.put(&apos;Devesh&apos;, &apos;Mishra&apos;); map.put(&apos;Rahul&apos;, &apos;Tiwari&apos;); for (String name: map.keySet()) //iteration over keys { //returns the value to which specified key is mapped String lastname=map.get(firstname); System.out.println(&apos;Key: &apos; + name + &apos;, Value: &apos; + lastname); } } } 

Izhod:

 Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh 

Uporaba metode forEach().

The za vsakogar() metoda ArrayList se uporablja za izvajanje dejanja za vsak element Iterable, dokler niso vsi elementi obdelani.

Sintaksa

 public void forEach(Consumer action) 

Metoda sprejme dejanje (dejanje, ki ga je treba izvesti za vsak element) kot parameter. Ne vrne ničesar. Vrže NullPointerException če je navedeno dejanje ničelno.

binarno iskanje v Javi

Primer

V naslednjem primeru uporabljamo lambda izraz znotraj metode forEach() za tiskanje vsakega elementa zemljevida.

 import java.util.Map; import java.util.HashMap; class IterationExample5 { public static void main(String[] arg) { Map map = new HashMap(); map.put(&apos;TCS&apos;, &apos;0 billion&apos;); map.put(&apos;Wipro&apos;, &apos;.5 billion&apos;); //iteration over map using forEach() method map.forEach((k,v) -&gt; System.out.println(&apos;Company: &apos;+ k + &apos;, Net worth: &apos; + v)); } } 

Izhod:

 Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion