ArrayList-Auswertung von Objekten in der Methode „contains()“
Eine ArrayList ist eine häufig genutzte Datenstruktur in Java. Eine seiner entscheidenden Methoden, enthält(), bietet die Möglichkeit, nach einem Objekt in der Liste zu suchen. Es stellt sich häufig die Frage, wie diese Methode bestimmt, ob zwei Objekte gleich sind.
Die Rolle der equal()-Methode
ArrayList enthält die List-Schnittstelle, die die Inhalte definiert ()-Methode. Gemäß der Schnittstellenspezifikation „List“ ruft die Methode „contains()“ die Methode „equals()“ auf, um Objekte auf Gleichheit zu vergleichen.
Standardverhalten von „equals()“
Standardmäßig gilt: Die Methode equal() vergleicht Objekte auf referenzielle Gleichheit, was bedeutet, dass Objekte nur dann als gleich betrachtet werden, wenn sie auf dieselbe Objektinstanz verweisen. Dieses Verhalten ist für die meisten benutzerdefinierten Klassen nicht geeignet, bei denen die Gleichheit auf den Attributen des Objekts basieren sollte.
Überschreiben von equal() für benutzerdefinierte Klassen
Um semantische Gleichheit für zu erreichen Für Ihre benutzerdefinierten Klassen müssen Sie die Methode equal() überschreiben. In Ihrem Beispiel haben Sie eine Implementierung von equal() bereitgestellt, die einen Vergleich basierend auf dem Wertattribut der Thing-Klasse durchführt.
Beispielauswertung
Verwenden Sie Ihre bereitgestellte Implementierung von equal(), werten wir die Methode „enthält()“ aus:
ArrayList<Thing> basket = new ArrayList<>(); Thing thing = new Thing(100); basket.add(thing); Thing another = new Thing(100); basket.contains(another); // true
Die Methode „enthält()“ gibt „true“ zurück, da die überschriebene Methode „equals()“ die Wertattribute vergleicht von beiden Dingen und einem anderen und bestimmt, dass sie gleich sind.
Um es der Methode „contains()“ zu ermöglichen, Objekte basierend auf ihren Attributen korrekt zu identifizieren, ist es daher wichtig, die Methode „equals()“ zu überschreiben und einen aussagekräftigen Wert bereitzustellen Implementierung zum Vergleich.
Das obige ist der detaillierte Inhalt vonWie bewertet die Methode „contains()' von ArrayList die Objektgleichheit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!