logo

Hoe kaart in Java te herhalen

In Java kan iteratie over Map op verschillende manieren worden gedaan. Houd er rekening mee dat we de kaart niet rechtstreeks kunnen herhalen met behulp van iteratoren , omdat de kaartinterface geen onderdeel is van Collection. Alle kaarten in Java-implementaties Kaart koppel. Er zijn de volgende typen kaarten in Java:

  • Hash kaart
  • Boomkaart
  • GelinkteHashMap

Een kaart is geen collectie, maar bekijk het toch in het kader van Collecties. Een kaart is dus een interface die de collectie-interface niet uitbreidt.

Iterator

Een iterator is een interface die wordt gebruikt voor iteratie over een verzameling. Het neemt de plaats in van Enumeration in Java Collections Framework. Het verschil tussen iterator en opsomming is:

  • De Iterator kan oudere en niet-verouderde elementen doorkruisen, terwijl Enumeration alleen oudere elementen kan doorkruisen.
  • Iterator is fail-fast, terwijl Enumeration niet fail-fast is.

Collectieweergaven

Met de collectieweergavenmethode kan een kaart op de volgende manieren als een collectie worden bekeken:

    sleutelbos:Het is de set sleutels op de kaart.waarden:Het is de verzameling waarden op de kaart.entrySet:Het is een set sleutel-waardeparen op de kaart.

De kaartinterface heeft ook een kleine geneste interface genaamd Kaartinvoer . De collectieweergave biedt de enige manier om over een kaart te itereren.

abs c-code

Iterator-interface gebruiken

Voorbeeld van iteratie via HashMap

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

Uitgang:

 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 

Met behulp van de methoden keyset() en value().

sleutelbos(): A sleutelbos() methode van Hash kaart klasse wordt gebruikt voor iteratie over de sleutels in de kaart. Het retourneert de weergave Set van de toetsen.

Syntaxis

 Set keyset() 

waarden(): A waarden() methode van Hash kaart klasse wordt gebruikt voor iteratie over de waarden op de kaart. Het retourneert een verzamelingsweergave van de waarden.

unix map aanmaken

Syntaxis

 Collection values() 

Voorbeeld

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

Uitgang:

 State: Gujarat State: Sikkim State: Uttar Pradesh Capital: Gandhi Nagar Capital: Ganagtok Capital: Lucknow 

Map.entrymethod gebruiken

Map.Entry is een interface. Het retourneert een verzamelingsweergave van de kaart, waarvan de elementen tot deze klasse behoren.

Een map.entrySet()-methode retourneert een Set-weergave van de toewijzing in de kaart. De veranderingen op de kaart worden ook weerspiegeld in de Set en omgekeerd. Het ondersteunt ook het verwijderen van elementen, waardoor de overeenkomstige mapping van de kaart wordt verwijderd.

localdate java

Syntaxis

 Set<map.entry> entrySet() </map.entry>

Voorbeeld

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

Uitgang:

java-char naar string
 Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89 

Iteratie over sleutels en het verkrijgen van waarden

Voorbeeld

In het volgende voorbeeld herhalen we eerst de sleutels en halen dan de waarden op.

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

Uitgang:

 Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh 

De methode forEach() gebruiken

De voorElke() methode van ArrayLijst wordt gebruikt om een ​​actie uit te voeren voor elk element van de Iterable totdat alle elementen zijn verwerkt.

Syntaxis

 public void forEach(Consumer action) 

De methode neemt actie (de actie die voor elk element moet worden uitgevoerd) als parameter. Het levert niets op. Het gooit NullPointerException als de opgegeven actie nul is.

Voorbeeld

expertsystemen

In het volgende voorbeeld gebruiken we de lambda-expressie in de forEach() -methode om elk element van de kaart af te drukken.

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

Uitgang:

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