I Java kan iterasjon over kart gjøres på forskjellige måter. Husk at vi ikke kan iterere over kart direkte ved å bruke iteratorer , fordi kartgrensesnittet ikke er en del av samlingen. Alle kart i Java implementerer Kart grensesnitt. Det finnes følgende typer kart i Java:
- HashMap
- Trekart
- LinkedHashMap
Et kart er ikke en samling, men vurder likevel under samlingsrammeverket. Derfor er et kart et grensesnitt som ikke utvider samlingsgrensesnittet.
Iterator
En iterator er et grensesnitt som brukes til å iterere over en samling. Det tar plassen til Enumeration i Java Collections Framework. Forskjellen mellom iterator og Enumeration er:
- Iteratoren kan krysse eldre og ikke-legacy elementer, mens Enumeration bare kan krysse eldre elementer.
- Iterator er feil-rask mens opptelling ikke er feil-rask.
Samlingsvisninger
Samlingsvisningsmetoden lar et kart sees som en samling på følgende måter:
Kartgrensesnittet har også et lite nestet grensesnitt kalt Kart.oppføring . Samlingsvisningen gir den eneste måten å iterere over et kart.
registrere minne
Bruker Iterator-grensesnittet
Eksempel på iterasjon over HashMap
java har neste
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)); } } }
Produksjon:
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
Bruke keyset() og value() metoden
nøkkelsett(): EN keySet() Metode av HashMap klasse brukes til iterasjon over nøklene i kartet. Den returnerer Set-visningen av tastene.
Syntaks
Set keyset()
verdier(): EN verdier() Metode av HashMap klasse brukes for iterasjon over verdiene i kartet. Den returnerer en samlingsvisning av verdiene.
Syntaks
eksempel på 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); } }
Produksjon:
State: Gujarat State: Sikkim State: Uttar Pradesh Capital: Gandhi Nagar Capital: Ganagtok Capital: Lucknow
Ved hjelp av Map.entrymethod
Map.Entry er et grensesnitt. Den returnerer en samlingsvisning av kartet, hvis elementer er av denne klassen.
En map.entrySet()-metode returnerer en Set-visning av tilordningen i kartet. Endringene i kartet gjenspeiles også i settet og omvendt. Den støtter også fjerning av elementer, som fjerner den tilsvarende kartleggingen fra kartet.
Syntaks
Set<map.entry> entrySet() </map.entry>
Eksempel
konvertering fra streng til int i java
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()); } } }
Produksjon:
Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89
Iterasjon over nøkler og få verdier
Eksempel
I det følgende eksemplet itererer vi først over tastene og får deretter verdiene.
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); } } }
Produksjon:
dereference pointer c
Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh
Bruke forEach()-metoden
De for hver() Metode av ArrayList brukes til å utføre en handling for hvert element i Iterable til alle elementene er behandlet.
Syntaks
public void forEach(Consumer action)
Metoden tar handling (handlingen som skal utføres for hvert element) som en parameter. Det gir ikke noe tilbake. Det kaster NullPointerException hvis den angitte handlingen er null.
Eksempel
I det følgende eksempelet bruker vi lambda-uttrykk i forEach()-metoden for å skrive ut hvert element i kartet.
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)); } }
Produksjon:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion