Unterschied Zwischen Equals Und HashCode In Java

Inhaltsverzeichnis:

Unterschied Zwischen Equals Und HashCode In Java
Unterschied Zwischen Equals Und HashCode In Java

Video: Unterschied Zwischen Equals Und HashCode In Java

Video: Unterschied Zwischen Equals Und HashCode In Java
Video: Java. Методы equals и hashCode. 2024, Kann
Anonim

Hauptunterschied - entspricht vs hashCode in Java

Die Gleichheit ähnelt dem Operator ==, der die Objektidentität und nicht 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 Hashwert aufteilt, bei dem es sich um eine 32-Bit-Ganzzahl mit Vorzeichen handelt. Der Hauptunterschied zwischen equals und hashCode in Java besteht darin, dass mit equals zwei Objekte verglichen werden, während mit hashCode entschieden wird, in welche Gruppe ein Objekt kategorisiert werden soll.

INHALT

1. Übersicht und Hauptunterschied

2. Was ist in Java gleich

? 3. Was ist Hashcode in Java?

4. Vergleich nebeneinander - Gleich mit Hashcode in Java in Tabellenform.

5. Zusammenfassung

Was ist in Java gleich?

Die Methode equals wird verwendet, um zwei Objekte zu vergleichen. Die Standardmethode equals ist in der Objektklasse definiert. Diese Implementierung ähnelt dem Operator ==. Die beiden Objektreferenzen sind nur dann gleich, wenn sie auf dasselbe Objekt zeigen. Es ist möglich, die Methode equals zu überschreiben.

Unterschied zwischen equals und hashCode in Java
Unterschied zwischen equals und hashCode in Java

Abbildung 01: Java-Programm mit Gleichheit

Die Anweisung System.out.println (s1.equals (s2)) gibt die Antwort false, da sich s1 und s2 auf zwei verschiedene Objekte beziehen. Es war ähnlich der Anweisung System.out.println (s1 == s2);

Die Anweisung System.out.println (s1.equals (s3)) gibt die Antwort true, da sich s1 und s3 auf dasselbe Objekt beziehen. Es war ähnlich der Anweisung System.out.println (s1 == s3);

In der Schülerklasse gibt es keine Gleichheitsmethode. Daher wird die Gleichheit in der Object-Klasse aufgerufen. True wird nur angezeigt, wenn die Objektreferenz auf dasselbe Objekt zeigt.

Unterschied zwischen equals und hashCode in Java Figure 02
Unterschied zwischen equals und hashCode in Java Figure 02

Abbildung 02: Java-Programm mit überschriebenen Gleichen

Gemäß dem obigen Programm wird die Methode equals überschrieben. Ein Objekt wird an die Methode übergeben und in Student umgewandelt. Dann werden die ID-Werte überprüft. Wenn die ID-Werte ähnlich sind, wird true zurückgegeben. Wenn nicht, wird false zurückgegeben. Die IDs von s1 und s2 sind ähnlich. Es wird also true gedruckt. Die IDs von s1 und s3 sind ebenfalls ähnlich, sodass true ausgegeben wird.

Was ist hashCode in Java?

Der Hashcode wird beim Hashing verwendet, um zu entscheiden, in welche Gruppe ein Objekt kategorisiert werden soll. Eine Gruppe von Objekten kann denselben Hashcode verwenden. Eine korrekte Hashing-Funktion kann Objekte gleichmäßig in verschiedene Gruppen verteilen.

Ein korrekter Hashcode kann folgende Eigenschaften haben. Angenommen, es gibt zwei Objekte als obj1 und obj2. Wenn obj1.equals (obj2) wahr ist, ist obj1.hashCode () gleich obj2.hashCode (). Wenn obj1.equals (obj2) false ist, ist es nicht erforderlich, dass obj1.hashCode () nicht gleich obj2.hashCode () ist. Die beiden ungleichen Objekte haben möglicherweise auch denselben Hashcode.

Unterschied zwischen equals und hashCode in Java Figure 03
Unterschied zwischen equals und hashCode in Java Figure 03

Abbildung 03: Schülerklasse mit equals und hashCode

Hauptunterschied zwischen equals und hashCode in Java
Hauptunterschied zwischen equals und hashCode in Java

Abbildung 04: Hauptprogramm

Die Student-Klasse enthält die Methoden equals und hashCode. Die equals-Methode in der Student-Klasse erhält ein Objekt. Wenn das Objekt null ist, wird false zurückgegeben. Wenn die Klassen der Objekte nicht identisch sind, wird false zurückgegeben. Die ID-Werte werden in beiden Objekten überprüft. Wenn sie ähnlich sind, wird true zurückgegeben. Andernfalls wird false zurückgegeben.

Im Hauptprogramm werden die Objekte s1 und s2 erstellt. Beim Aufruf von s1.equals (s2) wird true angegeben, da die equals-Methode überschrieben wird und die ID-Werte der beiden Objekte überprüft werden. Obwohl sie sich auf zwei Objekte beziehen, ist die Antwort wahr, da die ID-Werte von s1 und s2 gleich sind. Da s1.equals (s2) wahr ist, sollte der Hashcode von s1 und s2 gleich sein. Das Drucken des Hashcodes von s1 und s2 ergibt den gleichen Wert. Die hashCode-Methode kann mit Sammlungen wie HashMap verwendet werden.

Was ist der Unterschied zwischen equals und hashCode in Java?

Diff Artikel Mitte vor Tabelle

entspricht vs hashCode in Java

equals ist eine Methode in Java, die sich ähnlich wie der Operator == verhält, bei dem die Objektidentität und nicht die Objektgleichheit getestet wird. hashCode ist eine Methode, mit der eine Klasse die in einer Instanz der Klasse gespeicherten Daten implizit oder explizit in einen einzelnen Hashwert aufteilt.
Verwendungszweck
Die Methode gleich wird verwendet, um zwei Objekte zu vergleichen. Die Methode wird beim Hashing verwendet, um zu entscheiden, in welche Gruppe ein Objekt eingefügt werden soll.

Zusammenfassung - entspricht vs hashCode in Java

Der Unterschied zwischen equals und hashCode in Java besteht darin, dass mit equals zwei Objekte verglichen werden, während mit hashCode entschieden wird, in welche Gruppe ein Objekt eingeteilt werden soll.

Empfohlen: