Tutorial ringkas ini akan menunjukkan kepada anda cara membersihkan unsur pendua dari Daftar - pertama menggunakan Java biasa, kemudian Jambu dan akhirnya penyelesaian berbasis Java 8 Lambda.
Artikel ini adalah sebahagian daripada siri " Java - Back to Basic " di Baeldung.
1. Buang Pendua Dari Senarai Menggunakan Java Plain
Mengeluarkan unsur pendua dari Daftar dengan Kerangka Koleksi Java standard 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, senarai asalnya tetap tidak berubah.
2. Buang Pendua Dari Daftar Menggunakan Jambu Batu
Perkara yang sama boleh dilakukan dengan menggunakan Jambu Batu:
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 sekali lagi, senarai asal tidak berubah.
3. Buang Pendua Dari Senarai Menggunakan Java 8 Lambdas
Akhirnya - mari kita lihat penyelesaian baru, menggunakan Lambdas di Java 8; kita akan menggunakan kaedah berbeza () dari API Aliran yang mengembalikan aliran yang terdiri daripada elemen yang berbeza berdasarkan hasil yang dikembalikan dengan kaedah sama () :
public void givenListContainsDuplicates_whenRemovingDuplicatesWithJava8_thenCorrect() { List listWithDuplicates = Lists.newArrayList(1, 1, 2, 2, 3, 3); List listWithoutDuplicates = listWithDuplicates.stream() .distinct() .collect(Collectors.toList()); }
Dan di sana kami memilikinya - 3 cara cepat untuk membersihkan semua item pendua dari Senarai.
4. Kesimpulan
Artikel ini menunjukkan betapa mudahnya kita Buang Pendua dari Senarai Menggunakan Java Plain, Google Jambu Batu dan Java 8.
Pelaksanaan semua contoh dan coretan ini boleh didapati dalam projek GitHub. Ini adalah projek berasaskan Maven sehingga mudah diimport dan dijalankan.