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:
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('Cookies', 90.87f); map.put('Dry Fruits', 434.23f); map.put('Oats', 220.00f); map.put('Chocolate', 70.89f); for (Map.Entry entry : map.entrySet()) //using map.entrySet() for iteration { //returns keys and values respectively System.out.println('Item: ' + entry.getKey() + ', Price: ' + 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('Sumit', 'Singh'); map.put('Devesh', 'Mishra'); map.put('Rahul', 'Tiwari'); 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('Key: ' + name + ', Value: ' + 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('TCS', '0 billion'); map.put('Wipro', '.5 billion'); //iteration over map using forEach() method map.forEach((k,v) -> System.out.println('Company: '+ k + ', Net worth: ' + v)); } }
Izvade:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion