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
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!