Hallo,
ich habe eine Liste von doubles und müsste einen Hash daraus generieren, um jede Liste nur einmal zu haben.
Ich habe mich für Arrays.hashCode(new double[]{}) entschieden. Allerdings gibt es ein massives Problem:
System.out.println("Hashcode of [+40, -50]: " + Arrays.hashCode(new double[]{+40, -50}));
System.out.println("Hashcode of [-40, +50]: " + Arrays.hashCode(new double[]{-40, +50}));
Ungünstigerweise kommen beide Listen auf den gleich Hash-Wert:
Hashcode of [+40, -50]: -2004548671
Hashcode of [-40, +50]: -2004548671
Das ist in meinem Fall schlecht. Kennt jemand eine Möglichkeit einen sicheren / eindeutigen Hash zu bilden? Mit "Hash" mein ich ein eindeutiges Objekt. Was auch geht ist einen String zu bilden: 40_-50 und -40_50, jedoch ist diese Methode bedingt durch die String-Operationen sehr langsam wenn man viele Listen von doubles hat.
Vielen Dank
ich habe eine Liste von doubles und müsste einen Hash daraus generieren, um jede Liste nur einmal zu haben.
Ich habe mich für Arrays.hashCode(new double[]{}) entschieden. Allerdings gibt es ein massives Problem:
System.out.println("Hashcode of [+40, -50]: " + Arrays.hashCode(new double[]{+40, -50}));
System.out.println("Hashcode of [-40, +50]: " + Arrays.hashCode(new double[]{-40, +50}));
Ungünstigerweise kommen beide Listen auf den gleich Hash-Wert:
Hashcode of [+40, -50]: -2004548671
Hashcode of [-40, +50]: -2004548671
Das ist in meinem Fall schlecht. Kennt jemand eine Möglichkeit einen sicheren / eindeutigen Hash zu bilden? Mit "Hash" mein ich ein eindeutiges Objekt. Was auch geht ist einen String zu bilden: 40_-50 und -40_50, jedoch ist diese Methode bedingt durch die String-Operationen sehr langsam wenn man viele Listen von doubles hat.
Vielen Dank