Zum Hauptinhalt springen

Hashmap Java wie funktioniert das Beispiel

Hashmap ist eine der wichtigsten Datenstrukturen in der Programmiersprache Java. Es ist eine Implementierung der Schnittstelle Map und ermöglicht es Ihnen, Daten als Schlüssel-Wert-Paare zu speichern. Der Vorteil von Hashmap besteht darin, dass es dank der Verwendung von Hash-Funktionen eine sehr effiziente Erfassung und Suche nach Werten nach einem Schlüssel ermöglicht.

Die Arbeit von Hashmap basiert auf dem Hashing-Prinzip. Wenn Sie ein Element zu einer Hashmap hinzufügen, berechnet das System den Hashcode des Schlüssels und bestimmt anhand dieses Werts, an welcher Stelle die Daten innerhalb der Struktur gespeichert werden sollen. Wenn ein Wert nach einem Schlüssel abgerufen werden muss, berechnet das System den Hash-Code des Schlüssels erneut und verwendet ihn für eine schnelle Suche.

Wenn die Hashcodes verschiedener Schlüssel übereinstimmen (was aufgrund der endgültigen Hash-Größe möglich ist), tritt eine Kollision auf. In diesem Fall verwendet das System eine andere Datenstruktur, eine verknüpfte Liste, um mehrere Werte für einen einzelnen Hash zu speichern. Wenn Sie einen Wert anhand eines Schlüssels suchen, durchläuft das System diese Liste nacheinander, bis der gewünschte Wert gefunden wird. Dies kann zu einer Verlangsamung der Leistung führen.

Die Standardgröße der Hashmap beträgt 16 Elemente, sie kann jedoch beim Erstellen des Objekts geändert werden. Wenn es zu viele Elemente gibt, wird die Größe der Hashmap automatisch erhöht, um Kollisionen zu reduzieren und die Leistung zu verbessern. Jedoch kann eine zu große Anzahl von Elementen auch zu einer Verlangsamung der Leistung aufgrund des Arbeitsspeicherverbrauchs führen.

Was ist eine HashMap und wie funktioniert sie in Java?

Die Arbeit von HashMap basiert auf einer Hash-Funktion, die einen Schlüssel in einen ganzzahligen Wert konvertiert - einen Hash-Code. Hashcodes werden verwendet, um den Index eines Elements in einem Array zu bestimmen, in dem HashMap-Elemente gespeichert sind.

Wenn Sie ein Element zu einer HashMap hinzufügen, berechnet es zuerst den Hash-Code des Schlüssels und bestimmt dann den Index im Array mithilfe einer Hash-Funktion. Wenn bereits andere Elemente in dieser Arrayzelle vorhanden sind, tritt eine Kollision auf - eine Situation, in der die verschiedenen Schlüssel mit demselben Index übereinstimmen.

HashMap löst Kollisionen mit der Verkettungsmethode: jede Zelle im Array enthält eine einzelne verknüpfte Liste, in der Elemente mit denselben Hashcodes am Ende der Liste hinzugefügt werden. Bei der Suche nach einem Element wird zuerst der Hash des Schlüssels berechnet, dann wird die Liste in der entsprechenden Zelle des Arrays durchsucht.

Der Vorteil von HashMap ist die hohe Leistung beim Hinzufügen, Entfernen und Suchen von Elementen. Die Komplexität der Operationen beträgt im Durchschnitt O(1), was eine HashMap zu einer sehr effizienten Datenstruktur macht.

Beispiele für die Verwendung von HashMap in Java

Hier sind einige Beispiele für die Verwendung von HashMap:

HashMap hashMap = new HashMap<>();
hashMap.put("apple", 1);hashMap.put("orange", 2);hashMap.put("banana", 3);
int value = hashMap.get("apple");
hashMap.put("apple", 5);int updatedValue = hashMap.get("apple");
hashMap.remove("banana");
boolean containsKey = hashMap.containsKey("orange");
int size = hashMap.size();

Dies sind nur einige Beispiele für die Verwendung von HashMap in Java. Es ist ein leistungsfähiges Werkzeug zum Speichern und Verwalten von Daten im Programm.