Odstránenie všetkých duplikátov zo zoznamu v prostredí Java

Tento rýchly tutoriál vám to ukážeme ako vyčistiť duplicitné prvky zo zoznamu - najskôr pomocou obyčajnej Javy, potom Guavy a nakoniec riešenia založeného na Java 8 Lambda.

Tento článok je súčasťou „Java - späť na základné”Séria tu na Baeldungu.

1. Odstráňte duplikáty zo zoznamu pomocou obyčajnej Javy

Odstránenie duplicitných prvkov zo zoznamu pomocou štandardného rámca kolekcie Java sa vykonáva ľahko prostredníctvom Súpravy:

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

Ako vidíte, pôvodný zoznam zostáva nezmenený.

2. Odstráňte duplikáty zo zoznamu pomocou programu Guava

To isté sa dá urobiť aj pomocou Guavy:

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

Pôvodný zoznam opäť zostáva nezmenený.

3. Odstráňte duplikáty zo zoznamu pomocou Java 8 Lambdas

Na záver - pozrime sa na nové riešenie pomocou programu Lambdas v prostredí Java 8; ideme do Použi odlišný() metóda z Stream API ktorý vracia prúd pozostávajúci z odlišných prvkov na základe výsledku vráteného rovná sa () metóda:

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

A máme to - 3 rýchle spôsoby, ako vyčistiť všetky duplicitné položky zo zoznamu.

4. Záver

Tento článok nám ukazuje, ako ľahko môžeme odstrániť duplikáty zo zoznamu pomocou obyčajnej Java, Google Guava a Java 8.

Implementáciu všetkých týchto príkladov a úryvkov nájdete v projekte GitHub. Toto je projekt založený na Maven, takže by malo byť ľahké ho importovať a spustiť.