Rumah > Java > javaTutorial > Bagaimanakah Kaedah `contains()` ArrayList Menilai Kesamaan Objek?

Bagaimanakah Kaedah `contains()` ArrayList Menilai Kesamaan Objek?

Patricia Arquette
Lepaskan: 2024-12-14 00:33:10
asal
171 orang telah melayarinya

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

Penilaian ArrayList terhadap Objek dalam Kaedah contains()

ArrayList ialah struktur data yang sangat digunakan dalam Java. Salah satu kaedah pentingnya, contains(), menyediakan keupayaan untuk mencari objek dalam senarai. Soalan biasa timbul mengenai cara kaedah ini menentukan sama ada dua objek adalah sama.

Peranan equals() Kaedah

ArrayList menggabungkan antara muka Senarai, yang mentakrifkan kandungan () kaedah. Mengikut spesifikasi antara muka Senarai, kaedah contains() memanggil kaedah equals() untuk membandingkan objek untuk kesamaan.

Default equals() Behavior

Secara lalai, kaedah equals() membandingkan objek untuk kesamaan rujukan, yang bermaksud objek dianggap sama hanya jika ia merujuk kepada contoh objek yang sama. Tingkah laku ini tidak sesuai untuk kebanyakan kelas tersuai, di mana kesaksamaan harus berdasarkan atribut objek.

Mengatasi equals() untuk Kelas Tersuai

Untuk mencapai kesamaan semantik untuk kelas tersuai anda, anda perlu mengatasi kaedah equals(). Dalam contoh anda, anda telah menyediakan pelaksanaan equals() yang membandingkan berdasarkan atribut nilai kelas Thing.

Contoh Penilaian

Menggunakan pelaksanaan yang anda sediakan untuk equals(), mari kita nilaikan kaedah contains():

ArrayList<Thing> basket = new ArrayList<>();
Thing thing = new Thing(100);
basket.add(thing);
Thing another = new Thing(100);
basket.contains(another); // true
Salin selepas log masuk

Kaedah contains() mengembalikan true kerana overridden kaedah equals() membandingkan atribut nilai bagi kedua-dua benda dan satu lagi dan menentukannya adalah sama.

Oleh itu, untuk membolehkan kaedah contains() mengenal pasti objek dengan betul berdasarkan atributnya, adalah penting untuk mengatasi kaedah equals() dan menyediakan pelaksanaan yang bermakna untuk perbandingan.

Atas ialah kandungan terperinci Bagaimanakah Kaedah `contains()` ArrayList Menilai Kesamaan Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan