Java HashMap

Java 集合框架Java Collections Framework

HashMap ist eine Hash-Tabelle, die Schlüssel-Wert-Zuordnungen speichert.

HashMap implementiert das Map-Interface, speichert Daten basierend auf dem HashCode-Wert des Schlüssels, hat eine sehr schnelle Zugriffsgeschwindigkeit, erlaubt höchstens einen Datensatz mit einem null-Schlüssel und unterstützt keine Thread-Synchronisation.

HashMap ist ungeordnet, das heißt, es wird die Einfügereihenfolge nicht gespeichert.

HashMap erbt von AbstractMap und implementiert die Interfaces Map, Cloneable und java.io.Serializable.

Die Schlüssel- und Werttypen von HashMap können gleich oder unterschiedlich sein. Sie können String-Schlüssel und String-Werte oder Integer-Schlüssel und String-Werte sein.

Die Elemente in HashMap sind tatsächlich Objekte. Für einige gängige Basistypen können deren Wrapper-Klassen verwendet werden.

Die Tabelle der Wrapper-Klassen, die den Basistypen entsprechen, lautet wie folgt:

BasistypReferenztyp
booleschBoolean
ByteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charZeichen

Die Klasse HashMap befindet sich im Paket java.util. Sie muss vor der Verwendung importiert werden. Die Syntax lautet wie folgt:

import java.util.HashMap; // 引入 HashMap 类

Im folgenden Beispiel erstellen wir ein HashMap-Objekt Sites mit Integer-Schlüsseln und String-Werten:

HashMap<Integer, String> Sites = new HashMap<Integer, String>();

Elemente hinzufügen

Die Klasse HashMap bietet viele nützliche Methoden. Sie können die Methode put() verwenden, um Schlüssel-Wert-Paare hinzuzufügen:

Beispiel

// Importiere die HashMap-Klasse
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // HashMap-Objekt Sites erstellen
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // Schlüssel-Wert-Paare hinzufügen
        Sites.put(1, "Google");
        Sites.put(2, "Example");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        System.out.println(Sites);
    }
}

Das Ausführen des obigen Codes erzeugt die folgende Ausgabe:

{1=Google, 2=Example, 3=Taobao, 4=Zhihu}

Das folgende Beispiel erstellt eine HashMap mit String-Schlüsseln und String-Werten:

Beispiel

// Importiere die HashMap-Klasse
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // HashMap-Objekt Sites erstellen
        HashMap<String, String> Sites = new HashMap<String, String>();
        // Schlüssel-Wert-Paare hinzufügen
        Sites.put("one", "Google");
        Sites.put("two", "Example");
        Sites.put("three", "Taobao");
        Sites.put("four", "Zhihu");
        System.out.println(Sites);
    }
}

Das Ausführen des obigen Codes erzeugt die folgende Ausgabe:

{four=Zhihu, one=Google, two=Example, three=Taobao}

Zugriff auf Elemente

Wir können die Methode get(key) verwenden, um den Wert abzurufen, der dem Schlüssel entspricht:

Beispiel

// Importiere die HashMap-Klasse
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // HashMap-Objekt Sites erstellen
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // Schlüssel-Wert-Paare hinzufügen
        Sites.put(1, "Google");
        Sites.put(2, "Example");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        System.out.println(Sites.get(3));
    }
}

Das Ausführen des obigen Codes erzeugt die folgende Ausgabe:

Taobao

Elemente löschen

Wir können die Methode remove(key) verwenden, um das zum Schlüssel gehörende Schlüssel-Wert-Paar zu löschen:

Beispiel

// Importiere die HashMap-Klasse
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // HashMap-Objekt Sites erstellen
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // Schlüssel-Wert-Paare hinzufügen
        Sites.put(1, "Google");
        Sites.put(2, "Example");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        Sites.remove(4);
        System.out.println(Sites);
    }
}

Das Ausführen des obigen Codes erzeugt die folgende Ausgabe:

{1=Google, 2=Example, 3=Taobao}

Um alle Schlüssel-Wert-Paare zu löschen, können Sie die Methode clear verwenden:

Beispiel

// Importiere die HashMap-Klasse
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // HashMap-Objekt Sites erstellen
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // Schlüssel-Wert-Paare hinzufügen
        Sites.put(1, "Google");
        Sites.put(2, "Example");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        Sites.clear();
        System.out.println(Sites);
    }
}

Das Ausführen des obigen Codes erzeugt die folgende Ausgabe:

{}

Größe berechnen

Um die Anzahl der Elemente in einer HashMap zu berechnen, kannst du die Methode size() verwenden:

Beispiel

// Importiere die HashMap-Klasse
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // HashMap-Objekt Sites erstellen
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // Schlüssel-Wert-Paare hinzufügen
        Sites.put(1, "Google");
        Sites.put(2, "Example");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        System.out.println(Sites.size());
    }
}

Das Ausführen des obigen Codes erzeugt die folgende Ausgabe:

4

HashMap iterieren

Du kannst for-each verwenden, um über die Elemente in einer HashMap zu iterieren.

Wenn du nur die Schlüssel abrufen möchtest, kannst du die Methode keySet() verwenden und dann den entsprechenden Wert über get(key) abrufen. Wenn du nur die Werte abrufen möchtest, kannst du die Methode values() verwenden.

Beispiel

// Importiere die HashMap-Klasse
import java.util.HashMap;

public class ExampleTest {
    public static void main(String[] args) {
        // HashMap-Objekt Sites erstellen
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // Schlüssel-Wert-Paare hinzufügen
        Sites.put(1, "Google");
        Sites.put(2, "Example");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        // Schlüssel und Wert ausgeben
        for (Integer i : Sites.keySet()) {
            System.out.println("key: " + i + " value: " + Sites.get(i));
        }
        // Alle Werte zurückgeben
        for(String value: Sites.values()) {
          // Jeden Wert ausgeben
          System.out.print(value + ", ");
        }
    }
}

Das Ausführen des obigen Codes erzeugt die folgende Ausgabe:

key: 1 value: Google
key: 2 value: Example
key: 3 value: Taobao
key: 4 value: Zhihu
Google, Example, Taobao, Zhihu,

Java HashMap-Methoden

hashmap

Die Liste der häufig verwendeten Java HashMap-Methoden lautet wie folgt:

Methode Beschreibung
clear() Löscht alle Schlüssel/Wert-Paare in der hashMap
clone() Kopiert eine hashMap
isEmpty() Ermittelt, ob die hashMap leer ist
size() Berechnet die Anzahl der Schlüssel/Wert-Paare in der hashMap
put() Fügt Schlüssel/Wert-Paare zur hashMap hinzu
putAll() Fügt alle Schlüssel/Wert-Paare zur hashMap hinzu
putIfAbsent() Wenn der angegebene Schlüssel nicht in der hashMap vorhanden ist, fügt das angegebene Schlüssel/Wert-Paar in die hashMap ein.
remove() Löscht die Zuordnung des angegebenen Schlüssels in der hashMap
containsKey() Prüft, ob eine Zuordnung für den angegebenen Schlüssel in der hashMap vorhanden ist.
containsValue() Prüft, ob eine Zuordnung für den angegebenen Wert in der hashMap vorhanden ist.
replace() Ersetzt den Wert, der dem angegebenen Schlüssel in der hashMap entspricht.
replaceAll() Ersetzt alle Zuordnungen in der hashMap durch das Ergebnis der Ausführung der angegebenen Funktion.
get() Ruft den Wert ab, der dem angegebenen Schlüssel entspricht
getOrDefault() Ruft den Wert ab, der dem angegebenen Schlüssel entspricht, und gibt den festgelegten Standardwert zurück, wenn der Schlüssel nicht gefunden wird.
forEach() Führt die angegebene Operation für jede Zuordnung in der hashMap aus.
entrySet() Gibt eine Set-Ansicht aller Zuordnungen in der hashMap zurück.
keySet() Gibt eine Set-Ansicht aller Schlüssel in der hashMap zurück.
values() Gibt alle in der hashMap vorhandenen Werte zurück.
merge() Fügt der hashMap Schlüssel-Wert-Paare hinzu
compute() Berechnet den Wert für den angegebenen Schlüssel in der hashMap neu
computeIfAbsent() Berechnet den Wert für den angegebenen Schlüssel in der HashMap neu und fügt ihn der HashMap hinzu, wenn der Schlüssel nicht vorhanden ist
computeIfPresent() Berechnet den Wert für den angegebenen Schlüssel in der HashMap neu, sofern der Schlüssel in der HashMap vorhanden ist.

Für weitere API-Methoden siehe:https://www.example.com/manual/jdk11api/java.base/java/util/HashMap.html

Java 集合框架Java Collections Framework

Weitere Erweiterungen