Von dem, was ich online gelesen haben, gibt es zwei Möglichkeiten, um die Anzahl der Kollisionen abnehmend:Warum verringert die zunehmende Größe der Hashtabelle die Anzahl der Kollisionen?
- Verwenden Sie eine bessere Hash-Funktion
- die Größe der Hash-Tabelle erhöhen
ich das verstehen kann, erster Grund, aber ich kann mich nicht um den zweiten Kopf kümmern.
Wenn sagen wir, ich habe 5 Schlüssel alle, deren Hashes gleich sind. Sagen wir, wir verwenden Verkettung für Kollisionsauflösung. Alle 5 Schlüssel bilden eine Kette beginnend mit dem Index, der dem Hash-Wert entspricht. Jetzt, sagen wir, verdopple ich die Größe der Tabelle und rehash alle 5 Schlüssel. Die 5 Schlüssel werden immer noch Hash auf den gleichen Index und wird noch eine Größenänderung 5. Wie hat die Erhöhung der Größe der Hash-Tabelle Kollisionen verringern?
siehe hier: https://stackoverflow.com/questions/4980757/how-do-hashtables-deal-with-collisions [Quelle: http://javarevisited.blogspot.co.il/2011/02/how- hashmap-works-in-java.html] – AsfK