logo

Hvordan iterere kart i Java

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:

    nøkkelsett:Det er settet med nøkler i kartet.verdier:Det er samlingen av verdier i kartet.oppføringSett:Det er et sett med nøkkelverdi-par i kartet.

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

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

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

Produksjon:

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