Untersuchung von Hash-Code-Kollisionen
Eine Hash-Code-Kollision tritt auf, wenn mehrere Objekte denselben Hash-Code-Wert generieren. Obwohl die hashCode(int n)
-Methode für jeden gegebenen ganzzahligen Wert eindeutige Hash-Code-Werte generiert, ist sie nicht fehlerfrei. Es besteht immer noch die Möglichkeit von Hash-Code-Kollisionen, insbesondere wenn die Hash-Code-Werte und der zugrunde liegende Algorithmus, der die Hash-Codes generiert, nicht stark genug sind.
Lassen Sie uns eine Hash-Code-Kollision mit der hashCode(int n)
-Methode demonstrieren. Ändern Sie die Anwendung, indem Sie Hash-Code-Werte für eine Reihe vorgegebener ganzzahliger Werte generieren, wie unten gezeigt.
import java.lang.Integer;
import java.util.Arrays;
public class IntegerHashcode {
public static void main(String[] args) {
int[] values = {100, 200, 300, 400, 500};
int[] hashValues = new int[values.length];
for (int i = 0; i < values.length; i++) {
hashValues[i] = Integer.hashCode(values[i]);
}
System.out.println("Input integer values: " + Arrays.toString(values));
System.out.println("Corresponding hash code values: " + Arrays.toString(hashValues));
}
}
Im obigen Code haben wir ein Array von ganzzahligen Werten vorgegeben und für jedes von ihnen Hash-Code-Werte generiert. Anschließend drucken wir sowohl die Eingabewerte als auch ihre entsprechenden Hash-Code-Werte auf der Konsole aus.