logo

Sådan gentages kort i Java

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:

    nøglesæt:Det er det sæt nøgler, der er indeholdt i kortet.værdier:Det er samlingen af ​​værdier indeholdt i kortet.entrySet:Det er et sæt nøgleværdi-par i kortet.

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

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

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

Produktion:

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