Kollision in Hashmap in Java
Die Java-Collections-Schnittstelle stellt die Funktionalität der Hash-Tabellen-Datenstruktur unter Verwendung ihrer HashMap
-Klasse bereit. Diese Klasse speichert die Elemente in einem Schlüssel-Wert-Paar, wobei Schlüssel als Bezeichner fungieren und einem Wert in der Zuordnung eindeutig zugeordnet sind.
In diesem Tutorial werden wir Kollisionen in Java diskutieren.
Der Schlüssel HashMap
enthält einen Hashcode und eine Methode equals()
. Immer wenn wir einen neuen Eintrag in die Karte einfügen, wird der Hashcode überprüft. Es durchsucht den gesamten Objektpool und sucht mit der Methode equals()
nach Ähnlichkeiten des Hashcodes.
Wenn ein Eintrag vorhanden ist, ersetzt der neue Wert den primär vorhandenen Wert. Andernfalls wird einfach ein ganz neues Schlüssel-Wert-Paar erstellt.
Kollisionen treten auf, wenn mehrere Schlüssel mit demselben Bucket hashen oder wenn beispielsweise zwei oder mehr Objekte denselben Hashcode haben, aber unterschiedlich sind. Wenn zwei Schlüssel auf denselben Wert gehasht werden, wird am Bucket-Standort eine verknüpfte Liste gebildet, in der alle Informationen als Eintrag der Karte gespeichert werden, die das Schlüssel-Wert-Paar enthält.
Der Zugriff auf ein beliebiges Objekt könnte sich als umständlich erweisen, wenn die Einträge in den Listen vorhanden sind. Diese verknüpften Listen wurden ab der Java 8-Version in Binärbäume umgewandelt.
HashMap
handhabt Kollisionsfälle sehr effizient unter Verwendung eines als Verkettung bekannten Konzepts, das vorschlägt, die Werte in einer verketteten Liste oder einem binären Baum zu speichern, wie durch die Umsetzung der Methodik von Java 8 angezeigt.