logo

So iterieren Sie eine Karte in Java

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:

    Schlüsselsatz:Es handelt sich um den in der Karte enthaltenen Schlüsselsatz.Werte:Es handelt sich um die Sammlung von Werten, die in der Karte enthalten sind.Eintragssatz:Es handelt sich um eine Reihe von Schlüssel-Wert-Paaren in der Karte.

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

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

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

Ausgabe:

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