Menghapus semua duplikat dari Daftar di Java

Tutorial singkat ini akan menunjukkan kepada Anda cara membersihkan elemen duplikat dari Daftar - pertama menggunakan Java biasa, lalu Guava dan terakhir solusi berbasis Java 8 Lambda.

Artikel ini adalah bagian dari seri “ Java - Kembali ke Dasar ” di Baeldung.

1. Hapus Duplikat Dari Daftar Menggunakan Java Biasa

Menghapus elemen duplikat dari Daftar dengan Kerangka Koleksi Java standar dilakukan dengan mudah melalui Set :

public void givenListContainsDuplicates_whenRemovingDuplicatesWithPlainJava_thenCorrect() { List listWithDuplicates = Lists.newArrayList(0, 1, 2, 3, 0, 0); List listWithoutDuplicates = new ArrayList( new HashSet(listWithDuplicates)); assertThat(listWithoutDuplicates, hasSize(4)); }

Seperti yang Anda lihat, daftar asli tetap tidak berubah.

2. Hapus Duplikat Dari Daftar Menggunakan Jambu Biji

Hal yang sama juga dapat dilakukan dengan menggunakan Jambu Biji:

public void givenListContainsDuplicates_whenRemovingDuplicatesWithGuava_thenCorrect() { List listWithDuplicates = Lists.newArrayList(0, 1, 2, 3, 0, 0); List listWithoutDuplicates = Lists.newArrayList(Sets.newHashSet(listWithDuplicates)); assertThat(listWithoutDuplicates, hasSize(4)); }

Dan lagi, daftar asli tetap tidak berubah.

3. Hapus Duplikat Dari Daftar Menggunakan Java 8 Lambdas

Terakhir - mari kita lihat solusi baru, menggunakan Lambdas di Java 8; kita akan menggunakan metode different () dari Stream API yang mengembalikan aliran yang terdiri dari elemen berbeda berdasarkan hasil yang dikembalikan oleh metode equals () :

public void givenListContainsDuplicates_whenRemovingDuplicatesWithJava8_thenCorrect() { List listWithDuplicates = Lists.newArrayList(1, 1, 2, 2, 3, 3); List listWithoutDuplicates = listWithDuplicates.stream() .distinct() .collect(Collectors.toList()); }

Dan begitulah - 3 cara cepat untuk membersihkan semua item duplikat dari Daftar.

4. Kesimpulan

Artikel ini menunjukkan kepada kita betapa mudahnya kita dapat Menghapus Duplikat dari Daftar Menggunakan Java Biasa, Google Guava dan Java 8.

Penerapan semua contoh dan cuplikan ini dapat ditemukan di proyek GitHub. Ini adalah proyek berbasis Maven sehingga harus mudah untuk diimpor dan dijalankan.