Uklanjanje svih duplikata s popisa na Javi
Ovaj brzi vodič će vam pokazati kako očistiti dvostruke elemente s popisa - prvo koristeći običnu Javu, zatim Guavu i na kraju rješenje temeljeno na Java 8 Lambda.
Ovaj je članak dio „Java - Povratak na Basic”Serija ovdje na Baeldungu.
1. Uklonite duplikate s popisa pomoću obične Jave
Uklanjanje duplikata elemenata s popisa pomoću standardnog okvira Java Collections Framework vrši se jednostavno kroz Set:
javna praznina givenListContainsDuplicates_whenRemovingDuplicatesWithPlainJava_thenCorrect () {List listWithDuplicates = Lists.newArrayList (0, 1, 2, 3, 0, 0); Lista listWithoutDuplicates = novi ArrayList (novi HashSet (listWithDuplicates)); assertThat (listWithoutDuplicates, hasSize (4)); }
Kao što vidite, izvorni popis ostaje nepromijenjen.
2. Uklonite duplikate sa popisa pomoću Guave
Isto se može učiniti i pomoću Guave:
javna praznina givenListContainsDuplicates_whenRemovingDuplicatesWithGuava_thenCorrect () {List listWithDuplicates = Lists.newArrayList (0, 1, 2, 3, 0, 0); Popis listWithoutDuplicates = Lists.newArrayList (Sets.newHashSet (listWithDuplicates)); assertThat (listWithoutDuplicates, hasSize (4)); }
I opet, izvorni popis ostaje nepromijenjen.
3. Uklonite duplikate sa popisa pomoću Java 8 Lambdas
Napokon - pogledajmo novo rješenje, koristeći Lambdas u Javi 8; idemo koristiti različit () metoda iz API-ja Stream koji vraća tok koji se sastoji od različitih elemenata na temelju rezultata koji je vratio jednako () metoda:
javna praznina givenListContainsDuplicates_whenRemovingDuplicatesWithJava8_thenCorrect () {List listWithDuplicates = Lists.newArrayList (1, 1, 2, 2, 3, 3); Popis listWithoutDuplicates = listWithDuplicates.stream () .distinct () .collect (Collectors.toList ()); }
I tu imamo - 3 brza načina čišćenja svih dupliciranih stavki s popisa.
4. Zaključak
Ovaj nam članak pokazuje kako lako možemo ukloniti duplikate sa popisa pomoću obične Java, Google Guave i Java 8.
Provedba svih ovih primjera i isječaka može se naći u projektu GitHub. Ovo je projekt zasnovan na Mavenu, pa bi ga trebalo lako uvesti i pokrenuti.