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.