Bagaimana Kaedah ArrayList mengandungi() Menentukan Kesamaan Objek
Soalan:
Pertimbangkan ArrayList mengandungi objek bernama 'benda' yang dibina dengan integer 100. Jika a objek kedua bernama 'lain' dicipta dengan input pembina yang sama, adakah kaedah ArrayList contains() menilai 'benda' dan 'lain' sebagai sama?
Jawapan:
Kaedah contains() ArrayList bergantung pada kaedah equals() untuk menentukan kesamaan objek. Secara lalai, kaedah ini membandingkan rujukan objek dan bukannya kandungannya.
Dalam coretan kod yang disediakan, kelas Thing mengatasi kaedah equals() untuk membandingkan medan nilai. Jadi, kaedah contains() akan kembali benar jika 'benda' dan 'lain' mempunyai nilai yang sama, tidak kira sama ada ia adalah rujukan objek yang sama.
Pelaksanaan untuk Semakan Kesaksamaan:
Ya, pelaksanaan kelas Thing yang disediakan, yang mengatasi kaedah equals() berdasarkan nilai, akan menjadikan contains() kembali benar untuk objek dengan nilai yang sama. Mengatasi equals() diperlukan untuk membandingkan kandungan (medan nilai) dan bukannya rujukan objek.
Atas ialah kandungan terperinci Adakah Kaedah `contains()` ArrayList Membandingkan Rujukan atau Nilai Objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!