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:
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('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()); } } }
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('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); } } }
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('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)); } }
Uitgang:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion