I Java kan iteration over Map udføres på forskellige måder. Husk at vi ikke kan iterere over kort direkte vha iteratorer , fordi kortgrænsefladen ikke er en del af samlingen. Alle kort i Java implementerer Kort interface. Der er følgende typer kort i Java:
- HashMap
- Trækort
- LinkedHashMap
Et kort er ikke en samling, men overvej alligevel under samlingsrammen. Derfor er et kort en grænseflade, der ikke udvider samlingsgrænsefladen.
Iterator
En iterator er en grænseflade, der bruges til at iterere over en samling. Det træder i stedet for Enumeration i Java Collections Framework. Forskellen mellem iterator og enumeration er:
- Iteratoren kan krydse ældre og ikke-legacy elementer, hvorimod Enumeration kun kan krydse ældre elementer.
- Iterator er fejlhurtig, mens optælling ikke er fejlhurtig.
Samlingsvisninger
Samlingsvisningsmetoden gør det muligt at se et kort som en samling på følgende måder:
Kortgrænsefladen har også en lille indlejret grænseflade kaldet Kort.indtastning . Samlingsvisningen giver den eneste mulighed for at iterere over et kort.
java er den næste
Bruger Iterator-grænsefladen
Eksempel på iteration over HashMap
tegn til int java
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)); } } }
Produktion:
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
Brug af keyset() og value() metoden
nøglesæt(): EN keySet() metode til HashMap klasse bruges til iteration over nøglerne på kortet. Det returnerer indstillingsvisningen af tasterne.
Syntaks
Set keyset()
værdier(): EN værdier() metode til HashMap klasse bruges til iteration over værdierne indeholdt i kortet. Det returnerer en samlingsvisning af værdierne.
Syntaks
prøve java kode
Collection values()
Eksempel
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); } }
Produktion:
State: Gujarat State: Sikkim State: Uttar Pradesh Capital: Gandhi Nagar Capital: Ganagtok Capital: Lucknow
Brug af Map.entrymethod
Map.Entry er en grænseflade. Det returnerer en samlingsvisning af kortet, hvis elementer er af denne klasse.
En map.entrySet()-metode returnerer en Set-visning af kortlægningen indeholdt i kortet. Ændringerne i kortet afspejles også i sættet og omvendt. Det understøtter også elementfjernelse, hvilket fjerner den tilsvarende kortlægning fra kortet.
Syntaks
Set<map.entry> entrySet() </map.entry>
Eksempel
linux ændringsfil
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()); } } }
Produktion:
Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89
Iteration over nøgler og få værdier
Eksempel
I det følgende eksempel gentager vi først tasterne og får derefter værdierne.
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); } } }
Produktion:
dereference pointer c
Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh
Brug af metoden forEach().
Det for hver() metode til ArrayList bruges til at udføre en handling for hvert element i Iterable, indtil alle elementer er blevet behandlet.
Syntaks
public void forEach(Consumer action)
Metoden tager handling (den handling, der skal udføres for hvert element) som en parameter. Det returnerer ikke noget. Det kaster NullPointerException hvis den angivne handling er null.
Eksempel
I det følgende eksempel bruger vi lambda-udtryk inde i forEach()-metoden til at udskrive hvert element i kortet.
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)); } }
Produktion:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion