In Java kann die Iteration über Map auf verschiedene Arten erfolgen. Denken Sie daran, dass wir mit „map“ nicht direkt iterieren können Iteratoren , da die Kartenschnittstelle nicht Teil der Sammlung ist. Alle Karten in Java implementiert Karte Schnittstelle. In Java gibt es folgende Arten von Karten:
- HashMap
- TreeMap
- LinkedHashMap
Eine Karte ist keine Sammlung, aber betrachten Sie sie dennoch im Rahmen des Sammlungs-Frameworks. Daher ist eine Map eine Schnittstelle, die die Collections-Schnittstelle nicht erweitert.
Iterator
Ein Iterator ist eine Schnittstelle, die zum Durchlaufen einer Sammlung verwendet wird. Es ersetzt die Enumeration im Java Collections Framework. Der Unterschied zwischen Iterator und Enumeration ist:
- Der Iterator kann Legacy- und Nicht-Legacy-Elemente durchlaufen, während die Enumeration nur Legacy-Elemente durchlaufen kann.
- Der Iterator ist ausfallsicher, während die Enumeration nicht ausfallsicher ist.
Sammlungsansichten
Mit der Sammlungsansichtsmethode kann eine Karte auf folgende Weise als Sammlung angezeigt werden:
Die Map-Schnittstelle verfügt auch über eine kleine verschachtelte Schnittstelle namens Karteneintrag . Die Sammlungsansicht bietet die einzige Möglichkeit, eine Karte zu durchlaufen.
Unterschied zwischen Tiger und Löwe
Verwendung der Iterator-Schnittstelle
Beispiel einer Iteration über 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)); } } }
Ausgabe:
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
Verwendung der Methoden „keyset()“ und „value()“.
Schlüsselsatz(): A Schlüsselsatz() Methode von HashMap Die Klasse wird für die Iteration über die in der Karte enthaltenen Schlüssel verwendet. Es gibt die Set-Ansicht der Schlüssel zurück.
Aufruf der JS-Funktion aus HTML
Syntax
Set keyset()
Werte(): A Werte() Methode von HashMap Die Klasse wird für die Iteration über die in der Karte enthaltenen Werte verwendet. Es gibt eine Sammlungsansicht der Werte zurück.
Syntax
Collection values()
Beispiel
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); } }
Ausgabe:
String in Array Java
State: Gujarat State: Sikkim State: Uttar Pradesh Capital: Gandhi Nagar Capital: Ganagtok Capital: Lucknow
Verwenden der Map.entrymethod
Map.Entry ist eine Schnittstelle. Es gibt eine Sammlungsansicht der Karte zurück, deren Elemente dieser Klasse angehören.
Eine Methode „map.entrySet()“ gibt eine Set-Ansicht der in der Karte enthaltenen Zuordnung zurück. Die Änderungen in der Karte werden auch im Set widergespiegelt und umgekehrt. Es unterstützt auch das Entfernen von Elementen, wodurch die entsprechende Zuordnung aus der Karte entfernt wird.
Syntax
Set<map.entry> entrySet() </map.entry>
Beispiel
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()); } } }
Ausgabe:
Item: Oats, Price: 220.0 Item: Dry Fruits, Price: 434.23 Item: Cookies, Price: 90.87 Item: Chocolate, Price: 70.89
Iteration über Schlüssel und Abrufen von Werten
Beispiel
Im folgenden Beispiel iterieren wir zunächst über die Schlüssel und ermitteln dann die Werte.
Java-Typkonvertierung und -Casting
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); } } }
Ausgabe:
Key: Rahul, Value: Tiwari Key: Devesh, Value: Mishra Key: Sumit, Value: Singh
Verwendung der forEach()-Methode
Der für jede() Methode von Anordnungsliste wird verwendet, um eine Aktion für jedes Element der Iterable auszuführen, bis alle Elemente verarbeitet wurden.
Syntax
Führen Sie eine While-Schleife in Java aus
public void forEach(Consumer action)
Die Methode übernimmt die Aktion (die Aktion, die für jedes Element ausgeführt werden soll) als Parameter. Es gibt nichts zurück. Es wirft NullPointerException wenn die angegebene Aktion null ist.
Beispiel
Im folgenden Beispiel verwenden wir den Lambda-Ausdruck innerhalb der forEach()-Methode, um jedes Element der Karte zu drucken.
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)); } }
Ausgabe:
Company: Wipro, Net worth: .5 billion Company: TCS, Net worth: 0 billion