Das Gleichen ähnelt dem Operator == Operator, der eher auf Objektidentität als die Objektgleichheit testen soll. Der HashCode ist eine Methode, mit der eine Klasse die in einer Instanz der Klasse gespeicherten Daten implizit oder explizit in einen einzelnen Hash -Wert zerlegt, der eine 32 -Bit -Ganzzahl ist. Der Schlüsselunterschied zwischen gleichem und hashcode in Java ist das Die Equals werden verwendet, um zwei Objekte zu vergleichen, während der HashCode im Hashing verwendet wird, um zu entscheiden, in welche Gruppe ein Objekt eingeteilt werden sollte.
1. Überblick und wichtiger Unterschied
2. Was ist gleich in Java
3. Was ist Hashcode in Java
4. Seite für Seitenvergleich - gleich gegenüber Hashcode in Java in tabellarischer Form
5. Zusammenfassung
Die Equals -Methode wird verwendet, um zwei Objekte zu vergleichen. Die Standard -Equals -Methode ist in der Objektklasse definiert. Diese Implementierung ähnelt dem Operator ==. Die beiden Objektreferenzen sind nur gleich, wenn sie auf dasselbe Objekt zeigen. Es ist möglich, die Equals -Methode zu überschreiben.
Abbildung 01: Java -Programm mit Gleichen
Das Anweisungssystem.aus.println (S1.Equals (S2)) gibt der Antwort falsch, weil S1 und S2 auf zwei verschiedene Objekte beziehen. Es war ähnlich wie bei der Aussage, System.aus.println (S1 == S2);
Das Anweisungssystem.aus.println (S1.Equals (S3)) gibt die Antwort wahr, da sich S1 und S3 auf dasselbe Objekt beziehen. Es war ähnlich wie bei der Aussage, System.aus.println (S1 == S3);
In der Schülerklasse gibt es keine gleiche Methode. Daher wird die Gleichen in der Objektklasse aufgerufen. True wird nur angezeigt, wenn die Objektreferenz auf dasselbe Objekt zeigt.
Abbildung 02: Java -Programm mit überschriebenen gleich
Gemäß dem obigen Programm wird die Equals -Methode überschrieben. Ein Objekt wird an die Methode übergeben und wird zum Schüler gegossen. Dann werden die ID -Werte überprüft. Wenn die ID -Werte ähnlich sind, gibt es True zurück. Wenn nicht, gibt es falsch zurück. Die IDs von S1 und S2 sind ähnlich. Also wird es wahr drucken. Die IDs von S1 und S3 sind ebenfalls ähnlich und drucken also wahr.
Der HashCode wird im Hashing verwendet, um zu entscheiden, in welche Gruppe ein Objekt eingeteilt werden sollte. Eine Gruppe von Objekten kann denselben Hashcode teilen. Eine korrekte Hashing -Funktion kann Objekte gleichmäßig in verschiedene Gruppen verteilen.
Ein korrekter HashCode kann wie folgt Eigenschaften haben. Angenommen, es gibt zwei Objekte als OBJ1 und OBJ2. Wenn obj1.gleich (obj2) ist wahr, dann der obj1.HashCode () ist gleich OBJ2.Hash-Code(). Wenn obj1.Equals (OBJ2) ist falsch, es ist nicht notwendig, dass OBJ1.HashCode () ist OBJ2 nicht gleich.Hash-Code(). Das zwei ungleiche Objekt hat möglicherweise auch den gleichen Hashcode.
Abbildung 03: Schülerklasse mit Gleichen und HashCode
Abbildung 04: Hauptprogramm
Die Schülerklasse enthält die Gleich- und Hashcode -Methoden. Die Equals -Methode in der Schülerklasse erhält ein Objekt. Wenn das Objekt null ist, gibt es false zurück. Wenn die Klassen der Objekte nicht gleich sind, gibt es falsche zurück. Die ID -Werte werden in beiden Objekten überprüft. Wenn sie ähnlich sind, wird es wahr zurückkehren. Sonst wird es falsch zurückgegeben.
Im Hauptprogramm werden Objekte S1 und S2 erstellt. Beim Anruf S1.Equals (S2) ergibt True, da die Equals -Methode überschrieben ist und die ID -Werte der beiden Objekte überprüft. Obwohl sie sich auf zwei Objekte beziehen, ist die Antwort wahr, da die ID -Werte von S1 und S2 gleich sind. Als S1.Equals (S2) ist wahr, der Hashcode von S1 und S2 sollte gleich sein. Das Drucken des HashCode von S1 und S2 ergibt den gleichen Wert. Die HashCode -Methode kann mit Sammlungen wie HashMap verwendet werden.
gleich gegen Hashcode in Java | |
Equals ist eine Methode in Java, die ähnlich dem == Operator wirkt, nämlich die Objektidentität als die Objektgleichheit zu testen. | HashCode ist eine Methode, mit der eine Klasse die in einer Instanz der Klasse gespeicherten Daten implizit oder explizit in einen einzelnen Hash -Wert zerlegt. |
Verwendung | |
Die gleiche Methode wird verwendet, um zwei Objekte zu vergleichen. | Die Methode wird im Hashing verwendet, um zu entscheiden, in welche Gruppe ein Objekt platziert werden sollte. |
Der Unterschied in Equals und HashCode in Java besteht darin, dass die Equals zum Vergleich von zwei Objekten verwendet werden, während der HashCode im Hashing verwendet wird, um zu entscheiden.
1.„Java Hashcode ().”Wikipedia, Wikimedia Foundation, 17. Februar. 2018. Hier verfügbar
2.Harold, Elliotte Rusty. „Die Equals () -Methode.”Die Equals () -Methode, 2. November. 2001. Hier verfügbar