logo

Kaip kartoti žemėlapį Java

Java programoje iteracija per žemėlapį gali būti atliekama įvairiais būdais. Atminkite, kad negalime kartoti žemėlapio tiesiogiai naudodami iteratoriai , nes žemėlapio sąsaja nėra kolekcijos dalis. Visi žemėlapiai „Java“ įrenginiuose Žemėlapis sąsaja. „Java“ yra šių tipų žemėlapiai:

  • HashMap
  • TreeMap
  • LinkedHashMap

Žemėlapis nėra kolekcija, bet vis tiek apsvarstykite kolekcijų sistemą. Taigi žemėlapis yra sąsaja, kuri neplečia kolekcijų sąsajos.

Iteratorius

Iteratorius yra sąsaja, naudojama kartoti per kolekciją. „Java Collections Framework“ jis užima išvardijimo vietą. Skirtumas tarp iteratoriaus ir sąrašo yra:

  • Iteratorius gali pereiti senus ir nepasenusius elementus, o surašymas gali pereiti tik senus elementus.
  • Iteratorius yra greitas, o surašymas nėra greitas.

Kolekcijos peržiūros

Rinkinio rodinių metodas leidžia žiūrėti žemėlapį kaip kolekciją šiais būdais:

    KeySet:Tai raktų rinkinys, esantis žemėlapyje.vertės:Tai žemėlapyje esančių vertybių rinkinys.įrašų rinkinys:Tai yra rakto-reikšmių poros rinkinys žemėlapyje.

Žemėlapio sąsaja taip pat turi mažą įdėtą sąsają, vadinamą Žemėlapis.įrašas . Kolekcijos rodinys yra vienintelė priemonė kartoti žemėlapį.

vardas

Iteratoriaus sąsajos naudojimas

Iteracijos per HashMap pavyzdys

 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)); } } } 

Išvestis:

 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 

Naudojant keyset() ir value() metodus

keyset (): A keySet() metodas HashMap Klasė naudojama kartoti žemėlapyje esančius raktus. Grąžina klavišų rinkinio rodinį.

Sintaksė

 Set keyset() 

reikšmės (): A reikšmės () metodas HashMap klasė naudojama žemėlapyje esančioms reikšmėms kartoti. Tai grąžina vertybių rinkinio rodinį.

numpy dot produktas

Sintaksė

 Collection values() 

Pavyzdys

 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); } } 

Išvestis:

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

Naudojant Map.entrymetodą

Map.Entry yra sąsaja. Tai grąžina žemėlapio kolekcijos vaizdą, kurio elementai yra šios klasės.

Metodas map.entrySet() grąžina žemėlapyje esančio atvaizdavimo rinkinio rodinį. Žemėlapio pakeitimai taip pat atsispindi rinkinyje ir atvirkščiai. Jis taip pat palaiko elementų pašalinimą, kuris pašalina atitinkamą atvaizdavimą iš žemėlapio.

iškviesti javascript funkciją iš html

Sintaksė

 Set<map.entry> entrySet() </map.entry>

Pavyzdys

 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()); } } } 

Išvestis:

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

Iteracija per raktus ir verčių gavimas

Pavyzdys

Šiame pavyzdyje pirmiausia kartojame klavišus ir tada gauname reikšmes.

 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); } } } 

Išvestis:

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

Naudojant forEach() metodą

The kiekvienam() metodas ArrayList naudojamas kiekvienam Iterable elementui atlikti, kol visi elementai bus apdoroti.

Sintaksė

 public void forEach(Consumer action) 

Metodas naudoja veiksmą (veiksmą, kurį reikia atlikti kiekvienam elementui) kaip parametrą. Tai nieko negrąžina. Tai meta NullPointerException jei nurodytas veiksmas yra niekinis.

Pavyzdys

Šiame pavyzdyje mes naudojame lambda išraišką forEach() metodo viduje, kad spausdintume kiekvieną žemėlapio elementą.

 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)); } } 

Išvestis:

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