Zurück zu: Java Tutorial
HashMap
Im Kapitel ArrayList
hast Du gelernt, dass Arrays Elemente als geordnete Sammlung speichern und Du mit einer Indexnummer (Typ int
) darauf zugreifen müsst. Eine HashMap
speichert Elemente jedoch in „Schlüssel/Wert“-Paaren und Du kannst über einen Index eines anderen Typs (z. B. einen String
) darauf zugreifen.
Ein Objekt wird als Schlüssel (Index) für ein anderes Objekt (Wert) verwendet. Es können verschiedene Typen gespeichert werden: String
-Schlüssel und Integer
-Werte oder der gleiche Typ, wie: String
-Schlüssel und String
-Werte:
Beispiel
Erstellest Du ein HashMap
-Objekt namens „capitalCities“, das String
-Schlüssel und String
-Werte speichert:
import java.util.HashMap; // Importierst Du die HashMap-Klasse
HashMap<String, String> capitalCities = new HashMap<String, String>();
Elemente hinzufügen
Die Klasse HashMap
verfügt über viele nützliche Methoden. Um ihr beispielsweise Elemente hinzuzufügen, verwendest Dudie Methode put()
:
Beispiel
// Importierst Du die HashMap-Klasse
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Create a HashMap object called capitalCities
HashMap<String, String> capitalCities = new HashMap<String, String>();
// Add keys and values (Country, City)
capitalCities.put("England", "London");
capitalCities.put("Germany", "Berlin");
capitalCities.put("Norway", "Oslo");
capitalCities.put("USA", "Washington DC");
System.out.println(capitalCities);
}
}
Probier es aus im Online Compiler!
Auf ein Element zugreifen
Um auf einen Wert in der HashMap
zuzugreifen, verwendest Du die Methode get()
und verweisest Du auf seinen Schlüssel:
Beispiel
capitalCities.get("England");
Probier es aus im Online Compiler!
Entfernen eines Elements
Um ein Element zu entfernen, verwendest Du die Methode remove()
und verweisest Du auf den Schlüssel:
Beispiel
capitalCities.remove("England");
Probier es aus im Online Compiler!
Um alle Elemente zu entfernen, verwendest Du die Methode clear()
:
Beispiel
capitalCities.clear();
Probier es aus im Online Compiler!
HashMap-Größe
Um herauszufinden, wie viele Elemente vorhanden sind, verwendest Du die Methode size()
:
Beispiel
capitalCities.size();
Probier es aus im Online Compiler!
Durchlaufen einer HashMap
Durchlaufst Du die Elemente einer HashMap
mit einer For-Each-Schleife.
Hinweis: Verwendest Du die Methode keySet()
, wenn Du nur die Schlüssel möchts, tund die Methode values()
, wenn Du nur die Werte möchtest:
Beispiel
// Tasten drucken
for (String i : capitalCities.keySet()) {
System.out.println(i);
}
Probier es aus im Online Compiler!
Beispiel
// Werte drucken
for (String i : capitalCities.values()) {
System.out.println(i);
}
Probier es aus im Online Compiler!
Beispiel
// Schlüssel und Werte drucken
for (String i : capitalCities.keySet()) {
System.out.println("key: " + i + " value: " + capitalCities.get(i));
}
Probier es aus im Online Compiler!
Andere Arten
Schlüssel und Werte in einer HashMap sind eigentlich Objekte. In den obigen Beispielen haben wir Objekte vom Typ „String“ verwendet. Denkst Du daran, dass ein String in Java ein Objekt ist (kein primitiver Typ). Um andere Typen wie int zu verwenden, müsst Du eine entsprechende Wrapper-Klasse angeben: Integer
. Für andere primitive Typen verwendest Du: Boolean
für boolean, Character
für char, Double
für double usw.:
Beispiel
Erstellst Du ein HashMap
-Objekt namens „people“, das String
-Schlüssel und Integer
-Werte speichert:
// Import the HashMap class
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// Create a HashMap object called people
HashMap<String, Integer> people = new HashMap<String, Integer>();
// Add keys and values (Name, Age)
people.put("John", 32);
people.put("Steve", 30);
people.put("Angie", 33);
for (String i : people.keySet()) {
System.out.println("key: " + i + " value: " + people.get(i));
}
}
}
Probier es aus im Online Compiler!