一 equal
Die Methode equal ist auf Objektebene und vergleicht standardmäßig die Speicheradressen zweier Objekte, um die tatsächlichen zu vergleichen Der Inhalt von Objekten vergleicht im Allgemeinen, ob die Attributwerte derselben Attribute desselben Objekttyps gleich sind.
Eine Hash-Tabelle ist ein Array, Each Das Element im Array ist eine einseitig verknüpfte Liste. Die Knoten in derselben einseitig verknüpften Liste haben die gleichen Attribute. Der Attributwert ist der Index des Arrays Wert. .
Bevor HashCode generiert wird, muss der Abrufsatz einzeln verglichen werden. und die Abfrageeffizienz ist gering. Wenn die Elemente mit demselben Attributwert in der Sammlung nach einem bestimmten Attribut gruppiert werden, wird zentral gespeichert. Bei der Abfrage wird zunächst der Wert des Attributs des Abfrageobjekts abgerufen und die entsprechende Gruppe erstellt Basierend auf dem Wert, der das Problem erheblich reduziert. Es erhöht den Abfrageumfang und verbessert die Effizienz der Abfrage. Dies ist der Hintergrund von hashCode.
Der Hashcode zweier Objekte ist gleich, was nur darauf hinweist, dass sie zur selben Gruppe gehören. Es ist nicht garantiert, dass sie identisch sind. Sie müssen auch die Speicheradressen der beiden vergleichen Objekte oder übergeben equals vergleicht die spezifischen Inhalte. Nur wenn dieses Element erfüllt ist, kann festgestellt werden, dass die beiden Objekte gleich sind.
Aus dem Obigen ist ersichtlich, dass in der Hash-Tabelle dieselben zwei Objekte denselben Hash-Wert haben müssen.
Die hashCode()-Methode ist auf Objektebene und generiert standardmäßig einen int-Wert basierend auf dem Speicher Die Adresse des Objekts entspricht einer Eins-zu-Eins-Entsprechung, da dieselben beiden Objekte nur durch Gleichheit bestätigt werden, um sicherzustellen, dass die Attributwerte derselben Attribute sind Gleiches gilt, ohne den Hash-Code neu zu schreiben, sind die Hash-Werte unterschiedlich und werden als als zwei Objekte mit unterschiedlichem Inhalt in der Hash-Tabelle gespeichert, was dazu führt, dass zwei Elemente mit demselben Inhalt im Hash erscheinen Sobald die Methode „equals“ neu geschrieben ist, muss sie daher neu geschrieben werden. Schreiben Sie die Methode „hashCode“ und stellen Sie sicher, dass dieselben Objekte gleiche Werte haben. Drei Anwendungen
Das obige ist der detaillierte Inhalt vonZusammenfassung der Verwendung von equal und hashCode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!