Alle duplicaten verwijderen uit een lijst in Java

Deze korte tutorial laat het je zien hoe u de dubbele elementen uit een lijst opruimt - eerst gewoon Java gebruiken, dan Guava en tenslotte een Java 8 Lambda-gebaseerde oplossing.

Dit artikel maakt deel uit van de “Java - Terug naar Basic”Serie hier op Baeldung.

1. Verwijder duplicaten uit een lijst met gewoon Java

Het verwijderen van de dubbele elementen uit een lijst met het standaard Java Collections Framework is eenvoudig gedaan door middel van een set:

openbare ongeldige gegevenListContainsDuplicates_whenRemovingDuplicatesWithPlainJava_thenCorrect () {List listWithDuplicates = Lists.newArrayList (0, 1, 2, 3, 0, 0); List listWithoutDuplicates = nieuwe ArrayList (nieuwe HashSet (listWithDuplicates)); assertThat (listWithoutDuplicates, hasSize (4)); }

Zoals u kunt zien, blijft de oorspronkelijke lijst ongewijzigd.

2. Verwijder duplicaten uit een lijst met behulp van Guava

Hetzelfde kan ook worden gedaan met Guava:

openbare ongeldige gegevenListContainsDuplicates_whenRemovingDuplicatesWithGuava_thenCorrect () {List listWithDuplicates = Lists.newArrayList (0, 1, 2, 3, 0, 0); List listWithoutDuplicates = Lists.newArrayList (Sets.newHashSet (listWithDuplicates)); assertThat (listWithoutDuplicates, hasSize (4)); }

En nogmaals, de oorspronkelijke lijst blijft ongewijzigd.

3. Verwijder duplicaten uit een lijst met Java 8 Lambdas

Tot slot - laten we eens kijken naar een nieuwe oplossing, met Lambdas in Java 8; zouden gaan gebruik de onderscheiden () methode van de Stream API die een stream retourneert die bestaat uit verschillende elementen op basis van het resultaat dat wordt geretourneerd door is gelijk aan () methode:

openbare ongeldige gegevenListContainsDuplicates_whenRemovingDuplicatesWithJava8_thenCorrect () {List listWithDuplicates = Lists.newArrayList (1, 1, 2, 2, 3, 3); Lijst listWithoutDuplicates = listWithDuplicates.stream () .distinct () .collect (Collectors.toList ()); }

En daar hebben we het - 3 snelle manieren om alle dubbele items uit een lijst op te ruimen.

4. Conclusie

Dit artikel laat ons zien hoe eenvoudig we duplicaten van een lijst kunnen verwijderen met gewoon Java, Google Guava en Java 8.

De implementatie van al deze voorbeelden en fragmenten is te vinden in het GitHub-project. Dit is een op Maven gebaseerd project, dus het moet gemakkelijk te importeren en uit te voeren zijn.