Hapus duplikat dari ArrayList ketika objek tidak memiliki referensi yang sama [duplikat]

Saya memiliki masalah saat ini di proyek saya. Saya memiliki 1 daftar larik (Sebut saja BESAR) yang dibentuk oleh 3 daftar larik lainnya (A,B,C) dari masing-masing kueri SQL, jadi pada dasarnya saya memiliki item duplikat (terkadang bahkan Item yang sama 3 kali atau lebih) di daftar larik BESAR .

Masalah saya adalah saya tidak dapat menggunakan metode .contains() karena referensi objek berbeda di antara keduanya (walaupun beberapa objek mewakili "item" yang sama), dan sebagai "kunci utama", atribut yang tidak pernah berubah di dalam masing-masing objek item dalam daftar array adalah ID item (sebuah int). Bagaimana cara saya menghapus elemen duplikat sehingga saya hanya bisa mendapatkan satu dari setiap "item"?


person heythatsmekri    schedule 02.07.2014    source sumber
comment
Metode berisi() tidak membandingkan referensi, ia menggunakan .equals() pada objek yang terdapat dalam daftar. Anda perlu mengimplementasikan sama dengan() dan kode hash() di kelas itu, seperti yang disarankan oleh @Java Learner   -  person Ignazio    schedule 02.07.2014


Jawaban (2)


Anda perlu mengganti metode Equals kelas itu, sesuai kebutuhan bisnis.

Dan tentu saja metode hashcode, karena jika sama dengan diganti, metode kode hash juga harus diganti.

person Ninad Pingale    schedule 02.07.2014

Dijelaskan dengan baik di sini:

Bagaimana cara menghapus duplikat dari daftar?

Di equals periksa atribut id kedua objek.

person Kasper Ziemianek    schedule 02.07.2014