11. Juli 2013

Java: Über Maps iterieren

Die sogenannten Maps in Java sind Collections, die es ermöglichen, Daten zusammen mit einem eindeutigen Schlüssel abzuspeichern. Das klassische Szenario beim Zugriff auf die Daten einer solchen Map ist daher, dass zu einem gegebenen Schlüsselwert der passende Eintrag gesucht wird. Es kann jedoch auch je nach Anwendungsfall nötig sein, über alle in der Map gespeicherten Elemente zu iterieren. Im folgenden Codebeispiel soll daher eine elegante Möglichkeit gezeigt werden, wie mit einer einfachen for-Schleife über eine solche Map in Java iteriert werden kann:
 Map<Integer, String> map = new HashMap<Integer, String>();  
 map.put(0, "Value 1");  
 map.put(1, "Value 2");  
   
 for (Map.Entry<Integer, String> entry : map.entrySet()) {  
   System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());  
 }  
Bei der Map in diesem Beispiel handelt es sich um eine HashMap, die als Schlüssel Integer-Werte aufnimmt, über die jeweils ein String indiziert wird. Sie wird zunächst über die put-Methode mit zwei Einträgen gefüllt.

Das Iterieren anhand der for-Schleife macht sich zu nutzen, dass eine Map pro Eintrag aus einer einem Map.Entry-Objekt besteht, das das jeweilige Schlüssel-Werte-Paar aufnimmt. Über die entrySet-Methode des Interfaces Map erhält man die Menge dieser Objekte, um anschließend mittels der for-Schleife über sie zu iterieren. Über die Methoden getKey(), bzw. getValue() erhält man dann für jeden Schleifendurchlauf den Schlüssel, bzw. den zugeordneten Wert des jeweiligen Eintrags.

Keine Kommentare:

Kommentar veröffentlichen