logo

Kā iterēt karti Java

Programmā Java iterāciju, izmantojot karti, var veikt dažādos veidos. Atcerieties, ka mēs nevaram atkārtot karti tieši, izmantojot iteratori , jo kartes saskarne nav kolekcijas daļa. Visas kartes Java iekārtās Karte saskarne. Java valodā ir šādi karšu veidi:

  • HashMap
  • TreeMap
  • LinkedHashMap

Karte nav kolekcija, taču to apsveriet kolekciju ietvaros. Tādējādi karte ir saskarne, kas nepaplašina kolekciju saskarni.

Iterators

Iterators ir interfeiss, ko izmanto kolekcijas atkārtošanai. Tas aizņem uzskaitīšanas vietu Java kolekciju sistēmā. Atšķirība starp iteratoru un uzskaitījumu ir šāda:

  • Iterators var šķērsot mantotos un nemantotos elementus, savukārt uzskaitījums var šķērsot tikai mantotos elementus.
  • Iterators ir ātrs, savukārt uzskaitījums nav ātrs.

Kolekciju skati

Kolekciju skatu metode ļauj karti skatīt kā kolekciju šādos veidos:

    taustiņu komplekts:Tas ir atslēgu komplekts, kas atrodas kartē.vērtības:Tā ir Kartē ietverto vērtību kolekcija.ierakstu komplekts:Tā ir atslēgu un vērtību pāra kopa kartē.

Kartes saskarnei ir arī mazs ligzdots interfeiss, ko sauc Karte.ieraksts . Kolekcijas skats nodrošina vienīgo veidu, kā atkārtot karti.

gimp saglabāt kā jpeg

Izmantojot Iterator interfeisu

HashMap iterācijas piemērs

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

Izvade:

reakcijas tabula
 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 

Izmantojot keyset() un value() metodi

keyset (): A keySet() metode HashMap klase tiek izmantota iterācijai pa kartē ietvertajām atslēgām. Tas atgriež taustiņu Iestatīšanas skatu.

Sintakse

 Set keyset() 

vērtības (): A vērtības () metode HashMap klase tiek izmantota kartē ietverto vērtību iterācijai. Tas atgriež vērtību kolekcijas skatu.

Sintakse

 Collection values() 

Piemērs

c kods abs
 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); } } 

Izvade:

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

Izmantojot metodi Map.entry

Map.Entry ir saskarne. Tas atgriež kartes kolekcijas skatu, kuras elementi ir no šīs klases.

Metode map.entrySet() atgriež kartē ietvertās kartēšanas kopas skatu. Izmaiņas kartē ir atspoguļotas arī komplektā un otrādi. Tā atbalsta arī elementu noņemšanu, kas no kartes noņem atbilstošo kartējumu.

Sintakse

programmatūras testēšana un veidi
 Set<map.entry> entrySet() </map.entry>

Piemērs

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

Izvade:

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

Atslēgvārdu atkārtošana un vērtību iegūšana

Piemērs

Nākamajā piemērā mēs vispirms atkārtojam taustiņus un pēc tam iegūstam vērtības.

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

Izvade:

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

ForEach() metodes izmantošana

The katram() metode ArrayList tiek izmantots, lai veiktu darbību katram iterable elementam, līdz visi elementi ir apstrādāti.

Sintakse

 public void forEach(Consumer action) 

Metode izmanto darbību (darbība, kas jāveic katram elementam) kā parametru. Tas neko neatdod. Tas met NullPointerException ja norādītā darbība ir nulle.

b+ koks

Piemērs

Nākamajā piemērā mēs izmantojam lambda izteiksmi forEach() metodē, lai izdrukātu katru kartes elementu.

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

Izvade:

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