Heim > Java > javaLernprogramm > Wie bewertet die Methode „contains()' von ArrayList die Objektgleichheit?

Wie bewertet die Methode „contains()' von ArrayList die Objektgleichheit?

Patricia Arquette
Freigeben: 2024-12-14 00:33:10
Original
172 Leute haben es durchsucht

How Does ArrayList's `contains()` Method Evaluate Object Equality?

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage