Fjerner alle duplikater fra en liste i Java

Denne raske opplæringen kommer til å vise deg hvordan du rydder opp dupliserte elementer fra en liste - Først bruker du vanlig Java, deretter Guava og til slutt en Java 8 Lambda-basert løsning.

Denne artikkelen er en del avJava - Tilbake til Basic”-Serien her på Baeldung.

1. Fjern duplikater fra en liste ved hjelp av vanlig Java

Det er enkelt å fjerne duplikatelementene fra en liste med standard Java Collections Framework gjennom et sett:

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)); }

Som du kan se, forblir den opprinnelige listen uendret.

2. Fjern duplikater fra en liste ved hjelp av Guava

Det samme kan også gjøres ved hjelp av Guava:

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)); }

Og igjen forblir den opprinnelige listen uendret.

3. Fjern duplikater fra en liste ved hjelp av Java 8 Lambdas

Til slutt - la oss se på en ny løsning ved å bruke Lambdas i Java 8; dro til bruke distinkt() metode fra Stream API som returnerer en strøm som består av forskjellige elementer basert på resultatet som returneres av er lik() metode:

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

Og der har vi det - 3 raske måter å rydde opp i alle duplikatelementene fra en liste.

4. Konklusjon

Denne artikkelen viser oss hvor enkelt vi kan fjerne duplikater fra en liste ved hjelp av vanlig Java, Google Guava og Java 8.

Implementeringen av alle disse eksemplene og utdragene finner du i GitHub-prosjektet. Dette er et Maven-basert prosjekt, så det skal være enkelt å importere og kjøre.


$config[zx-auto] not found$config[zx-overlay] not found