Paling sederhana: buang seluruh koleksi ke dalam Set (menggunakan konstruktor Set (Collection) atau Set.addAll), lalu lihat apakah Set memiliki ukuran yang sama dengan ArrayList.
List<Integer> list = ...;
Set<Integer> set = new HashSet<Integer>(list);
if(set.size() < list.size()){
/* There are duplicates */
}
Pembaruan: Jika saya memahami pertanyaan Anda dengan benar, Anda memiliki array Blok 2d, seperti pada
Blokir tabel [] [];
dan Anda ingin mendeteksi apakah ada baris yang memiliki duplikat?
Dalam hal ini, saya dapat melakukan hal berikut, dengan asumsi bahwa Block mengimplementasikan "sama dengan" dan "hashCode" dengan benar:
for (Block[] row : table) {
Set set = new HashSet<Block>();
for (Block cell : row) {
set.add(cell);
}
if (set.size() < 6) { //has duplicate
}
}
Saya tidak 100% yakin tentang sintaks, jadi mungkin lebih aman untuk menuliskannya sebagai
for (int i = 0; i < 6; i++) {
Set set = new HashSet<Block>();
for (int j = 0; j < 6; j++)
set.add(table[i][j]);
...
Set.add
mengembalikan boolean false jika item yang ditambahkan sudah ada di set, sehingga Anda bahkan dapat melakukan short circuit dan bale pada add yang mengembalikan false
jika semua yang ingin Anda ketahui adalah apakah ada duplikat.