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

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

Linda Hamilton
Lepaskan: 2024-12-02 22:40:11
asal
686 orang telah melayarinya

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

Perbandingan Objek dalam ArrayList: Bagaimana mengandungi() Menentukan Kesamaan Objek

Apabila menambahkan objek pada ArrayList, selalunya diandaikan bahawa mengandungi () kaedah akan menilai objek berdasarkan nilai medannya sahaja. Walau bagaimanapun, proses sebenar adalah lebih bernuansa daripada itu.

Dalam Java, antara muka Senarai, yang ArrayList laksanakan, mentakrifkan tandatangan kaedah contains(). Menurut dokumentasi, kaedah "kembali benar jika dan hanya jika senarai ini mengandungi elemen yang ditentukan." Tetapi bagaimanakah senarai menentukan sama ada dua objek adalah sama?

Peranan equals()

Jawapannya terletak pada kaedah equals() , yang ditakrifkan dalam kelas Objek. Kaedah ini bertanggungjawab untuk membandingkan dua objek dan menentukan sama ada ia mewakili nilai yang sama. Apabila kaedah contains() dipanggil, ia secara dalaman memanggil kaedah equals() untuk menentukan sama ada objek yang ditentukan sepadan dengan mana-mana objek dalam senarai.

Custom equals() untuk Custom Objects

Dalam contoh khusus anda, anda mentakrifkan kaedah equals() tersuai dalam kelas Thing. Ini adalah perlu kerana secara lalai, kaedah equals() yang disediakan oleh Object membandingkan rujukan objek, bukan nilai medan. Pelaksanaan anda membandingkan medan nilai dengan betul untuk menentukan sama ada dua objek Thing adalah sama.

Dengan mengandaikan bahawa kelas Thing dilaksanakan seperti yang ditunjukkan, kaedah contains() sememangnya akan kembali benar apabila mencari objek yang serupa kepada yang telah ditambahkan pada senarai bakul sebelum ini. Ini kerana kaedah equals() kembali benar apabila medan nilai bagi dua objek sepadan.

Kesimpulan

Ringkasnya, kaedah ArrayList contains() menggunakan kaedah equals() untuk menentukan sama ada dua objek adalah sama. Untuk kelas objek tersuai, anda mungkin perlu mengatasi kaedah equals() untuk menyediakan pelaksanaan anda sendiri berdasarkan sifat khusus yang mentakrifkan kesamaan untuk objek anda.

Atas ialah kandungan terperinci Bagaimanakah Kaedah `contains()` ArrayList Menentukan 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