? Java-Anwendungen Modell Code-Komponenten als Objekte , wobei jedes Objekt mit einer Fläche von Verantwortung . Objekte stellen Methoden zur Durchführung ihrer Aufgaben . Einige Methoden in Java werden von allen möglichen Gegenständen , darunter Strings implementiert. Das Java-Framework ermöglicht es Entwicklern, bestimmte Arten von Datenspeicherstruktur , von denen einige Hash - Code-Werte verwenden, um Gegenstände zu lagern verwenden . Ein Hash - Code-Wert verwendet , um einen Code zu einem bestimmten Objekt beziehen , so dass die Sammlung Klasse effiziente Verfahren zum Speichern mehrerer Objekte in dem Programm zu implementieren. Java -Code kann Hash - Code-Werte für alle Objekte , darunter Strings, die unveränderlich sind zu berechnen. String Inhalt
String-Variablen in Java-Programme sind Objekte der Klasse String , Speicherung Sequenzen von Textzeichen. Dies kann verwirrend sein , weil Programme String-Variablen mit der gleichen Art von Struktur für primitive Art Variablen wie Zahlen verwendet erstellen. Der folgende Beispielcode demonstriert die Schaffung eines String-Variable : String name = " John ";
Das Programm durchführen können Methoden der String-Klasse auf diese Variable , von denen einige beinhalten Änderung der Textinhalt . Methoden , die den Inhalt eines Strings verändern normalerweise einen neuen String , anstatt dass die bestehende Zeichenfolge. Dies liegt daran, Strings unveränderlich sind , was bedeutet, dass, sobald eine String-Variable erstellt wird, dessen Inhalt nicht verändert werden kann. Programme , in denen der Inhalt eines String scheint verändert tatsächlich die Schaffung neuer Saiten , die bestehende ersetzen werden.
HashCode Funktion
Alle Objekte in Java bieten den " hashCode "-Funktion . Dies liegt daran, alle Java-Klassen von der Superklasse Object , das die " hashCode "-Methode bietet erben. Der folgende Beispielcode demonstriert den Aufruf der Methode auf der String-Variable : name.hashCode ();
Aufruf dieser Methode bewirkt, Java , um einen Hash - Code-Wert für die String-Variable angegeben erzeugen . Erstellen eines Hash - Code für einen String-Objekt beinhaltet die gleichen Verfahren , wie Sie für jedes Objekt verwenden würde.
Ergebnis
" hashCode "-Methode Ergebnisse in einem Integer- Wert, der die Aufgabe in Frage. Mit dieser Nummer kann Java-Klassen auf Effizienz zu optimieren, wenn die Speicherung von Daten Werte , vor allem in Verbindung mit der Klasse HashMap oder anderen verwandten Sammlungen Klassen . In den meisten Fällen ist ein Java-Programmierer nicht um die Details der Zahlen als Hash -Codes für Elemente wie Strings verwendet Sorgen, wie die Sammlungen Klassen behandeln dieses Detail.
Equality
Das Ergebnis des Aufrufs der " hashCode " auf zwei Elemente, die gleich sind sollte die gleiche Zahl sein. Zum Beispiel sollte die folgenden zwei String-Variablen generieren den gleichen Hash - Code-Wert : String someName = " John "; String otherName = " John ";
Wenn zwei Objekte ein wahres Ergebnis zurück, wenn innerhalb der verwendeten equals-Methode , dann Java hält sie gleich sein, in diesem Fall sollten sie in der gleichen Hash - Code. Zum Beispiel würde der folgende Code in einen wahren Wert führen : boolean AreEqual = someName.equals ( otherName );
Es ist in der Regel der Fall , wenn zwei Zeichenketten nicht gleich sind, werden sie verschiedene Hash - Code zu erzeugen , aber dies ist nicht immer gewährleistet . (Siehe Referenzen 1, 2, 3)