Saya ingin mengklarifikasi beberapa hal di sini untuk poster asli yang telah disinggung orang lain tetapi belum dinyatakan secara eksplisit. Saat Anda mengatakan bahwa Anda menginginkan daftar unik, itulah definisi dari Kumpulan Berurutan. Beberapa perbedaan utama lainnya antara Antarmuka Set dan Antarmuka Daftar adalah bahwa Daftar memungkinkan Anda menentukan indeks penyisipan. Jadi, pertanyaannya adalah apakah Anda benar-benar membutuhkan Antarmuka Daftar (yaitu untuk kompatibilitas dengan pustaka pihak ketiga, dll.), Atau dapatkah Anda mendesain ulang perangkat lunak Anda untuk menggunakan antarmuka Set? Anda juga harus mempertimbangkan apa yang Anda lakukan dengan antarmuka. Apakah penting untuk menemukan elemen berdasarkan indeksnya? Berapa banyak elemen yang Anda harapkan di set Anda? Jika Anda ingin memiliki banyak elemen, apakah pemesanan itu penting?
Jika Anda benar-benar membutuhkan Daftar yang hanya memiliki batasan unik, ada kelas Apache Common Utils org.apache.commons.collections.list.SetUniqueList yang akan memberi Anda antarmuka Daftar dan batasan unik. Pikiran Anda, ini merusak antarmuka Daftar. Namun, Anda akan mendapatkan kinerja yang lebih baik dari ini jika Anda perlu mencari ke dalam daftar berdasarkan indeks. Jika Anda dapat menggunakan antarmuka Set, dan Anda memiliki kumpulan data yang lebih kecil, LinkedHashSet mungkin merupakan cara yang baik untuk digunakan. Itu hanya tergantung pada desain dan tujuan perangkat lunak Anda.
Sekali lagi, ada kelebihan dan kekurangan masing-masing koleksi. Beberapa sisipan cepat tetapi pembacaan lambat, beberapa memiliki pembacaan cepat tetapi sisipan lambat, dll. Masuk akal untuk meluangkan cukup banyak waktu dengan dokumentasi koleksi untuk mempelajari detail yang lebih baik dari setiap kelas dan antarmuka.