Hallo,
Folgende Situation:
Ausgabe:
Das gleiche nochmal - nur verändere ich die Reihenfolge der sysout-zeilen.
Ausgabe:
Zusammenfassung:
Nach Umstellen der Reihenfolge der Textausgabe wurde der hashcode von sb1 zu dem von sb3, der von sb2 zu dem von sb1, der von sb3 ist verschwundne und der von sb2 hat sich total verändert.
Ich habe erwartet, dass der hashcode eines Objektes unveränderlich ist, solange sich das Objekt an sich nicht verändert. Warum also passiert das hier so?
Folgende Situation:
Java:
StringBuilder sb1 = new StringBuilder("Mein 1. Text.");
StringBuilder sb2 = new StringBuilder("Mein 2. Text.");
StringBuilder sb3 = new StringBuilder("Mein 3. Text.");
System.out.println("Hashcode zu sb1: " + sb1.hashCode());
System.out.println("Hashcode zu sb2: " + sb2.hashCode());
System.out.println("Hashcode zu sb3: " + sb3.hashCode());
Ausgabe:
Code:
// Hashcode zu sb1: 18426253
// Hashcode zu sb2: 16197143
// Hashcode zu sb3: 31843011
Das gleiche nochmal - nur verändere ich die Reihenfolge der sysout-zeilen.
Java:
StringBuilder sb1 = new StringBuilder("Mein 1. Text.");
StringBuilder sb2 = new StringBuilder("Mein 2. Text.");
StringBuilder sb3 = new StringBuilder("Mein 3. Text.");
System.out.println("Hashcode zu sb2: " + sb2.hashCode());
System.out.println("Hashcode zu sb3: " + sb3.hashCode());
System.out.println("Hashcode zu sb1: " + sb1.hashCode());
Ausgabe:
Java:
// Hashcode zu sb2: 3195425
// Hashcode zu sb3: 18426253
// Hashcode zu sb1: 16197143
Zusammenfassung:
Nach Umstellen der Reihenfolge der Textausgabe wurde der hashcode von sb1 zu dem von sb3, der von sb2 zu dem von sb1, der von sb3 ist verschwundne und der von sb2 hat sich total verändert.
Ich habe erwartet, dass der hashcode eines Objektes unveränderlich ist, solange sich das Objekt an sich nicht verändert. Warum also passiert das hier so?