hashCode()

k3ltis

Mitglied
Hallo,

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?
 

XHelp

Top Contributor
Das schon, aber das sind ja völlig verschiedene Objekte. Du kannst auch einfach:
Java:
StringBuilder sb1 = new StringBuilder("Mein 1. Text.");
StringBuilder sb2 = new StringBuilder("Mein 1. Text.");
StringBuilder sb3 = new StringBuilder("Mein 1. Text.");
System.out.println(sb1.hashCode());
System.out.println(sb2.hashCode());
System.out.println(sb3.hashCode());
StringBuilder überschreibt hashCode vom Objekt nicht, so dass der HashCode von unterschiedlichen Objekten immer unterschiedlich ist und hat nichts mit dem "Inhalt" zu tun.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
W Wann und warum hashcode und equals? Java Basics - Anfänger-Themen 14
S Hashcode-Berechnung + ^ Java Basics - Anfänger-Themen 2
S Interface Equals und hashCode Java Basics - Anfänger-Themen 16
L Logistiksystem Methode equals und hashcode Java Basics - Anfänger-Themen 20
W JUnit Test und HashCode Java Basics - Anfänger-Themen 14
G HashCode für Indexberechnung im Array Java Basics - Anfänger-Themen 2
E hashCode implementierung Java Basics - Anfänger-Themen 9
M hashcode Java Basics - Anfänger-Themen 3
T hashCode-Kontrakt Java Basics - Anfänger-Themen 1
Psypsy hashCode, equals und toString Java Basics - Anfänger-Themen 3
K hashCode, compareTo vs. equals Java Basics - Anfänger-Themen 3
M Wann eigene implementierte HashCode Methode zwingend erforderlich? Java Basics - Anfänger-Themen 1
T hashCode mit boolean Java Basics - Anfänger-Themen 1
M Frage zu HashCode Methode in Java Java Basics - Anfänger-Themen 7
M Hashcode als lesbarer String Java Basics - Anfänger-Themen 1
S Hashcode - Operator ^ Java Basics - Anfänger-Themen 11
G 64 Bit Hashcode erstellen aus String Java Basics - Anfänger-Themen 11
C hashCode() bei Klassen, die nicht immutable sind Java Basics - Anfänger-Themen 27
M Collections Problem bei Überschreibung von hashcode() und equals() bei Hashset-Implementierung Java Basics - Anfänger-Themen 5
H Hashcode aus Datei erzeugen Java Basics - Anfänger-Themen 7
B Hashcode Java Basics - Anfänger-Themen 25
K equals() und hashcode() überschreiben Java Basics - Anfänger-Themen 5
T Code in hashCode Java Basics - Anfänger-Themen 2
S hashCode() überschreiben Java Basics - Anfänger-Themen 13
T equals() und hashCode() Java Basics - Anfänger-Themen 7
A HashCode Überschreiben Java Basics - Anfänger-Themen 2
H Suche spezifische Eigenschaft von Object - sowas wie ".hashCode()" Java Basics - Anfänger-Themen 4
E Java hashCode equals Problem Java Basics - Anfänger-Themen 2
E hashCode bei Objekten Java Basics - Anfänger-Themen 14
neurox Tutorial equals und hashCode überschreiben Java Basics - Anfänger-Themen 33
B Frage zu equals() und hashCode() Java Basics - Anfänger-Themen 28
A veränderbar kanonische Klassen: Methode equals, hashcode, serializable Java Basics - Anfänger-Themen 5
M Fehler im HashCode()! Java Basics - Anfänger-Themen 12
S equals() - hashCode() - Contract Java Basics - Anfänger-Themen 54
S HashCode überschreiben! Java Basics - Anfänger-Themen 17
D HashCode eines Objekts Java Basics - Anfänger-Themen 5
R Vergleiche mit Equals(), hashCode() und == Java Basics - Anfänger-Themen 10
M HashCode von java.io.File - Wurde die Datei geändert ? Java Basics - Anfänger-Themen 2
B Hashcode?Was ist das und wozu? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben