Wie die Methode contains() von ArrayList die Objektgleichheit bestimmt
Frage:
Betrachten Sie eine ArrayList enthält ein Objekt namens „thing“, das mit der Ganzzahl 100 erstellt wurde. Wenn ein zweites Objekt namens „another“ mit erstellt wird Wird bei derselben Konstruktoreingabe die Methode „enthält()“ von ArrayList „Ding“ und „anderes“ als gleich auswerten?
Antwort:
Die Methode „enthält()“ von ArrayList basiert auf der equal()-Methode zur Bestimmung der Objektgleichheit. Standardmäßig vergleicht diese Methode Objektverweise und nicht deren Inhalt.
Im bereitgestellten Codeausschnitt überschreibt die Thing-Klasse die Methode equal(), um das Wertfeld zu vergleichen. Die Methode enthält() gibt also „true“ zurück, wenn „Ding“ und „Anderes“ denselben Wert haben, unabhängig davon, ob es sich um dieselben Objektreferenzen handelt.
Implementierung für die Gleichheitsprüfung:
Ja, die bereitgestellte Implementierung der Klasse „Thing“, die die Methode „equals()“ basierend auf dem Wert überschreibt, sorgt dafür, dass „contains()“ für Objekte mit identischen Werten „true“ zurückgibt. Das Überschreiben von equal() ist erforderlich, um den Inhalt (Wertfeld) anstelle von Objektreferenzen zu vergleichen.
Das obige ist der detaillierte Inhalt vonVergleicht die Methode „contains()' von ArrayList Objektreferenzen oder -werte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!