Suppression de tous les doublons d'une liste en Java

Ce tutoriel rapide va vous montrer comment nettoyer les éléments en double d'une liste - d'abord en utilisant Java brut, puis Guava et enfin une solution basée sur Java 8 Lambda.

Cet article fait partie de la série « Java - Back to Basic » ici sur Baeldung.

1. Supprimer les doublons d'une liste à l'aide de Java standard

La suppression des éléments en double d'une liste avec le Java Collections Framework standard se fait facilement via un ensemble :

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

Comme vous pouvez le voir, la liste d'origine reste inchangée.

2. Supprimer les doublons d'une liste à l'aide de Guava

La même chose peut être faite en utilisant 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)); }

Et encore une fois, la liste originale reste inchangée.

3. Supprimer les doublons d'une liste à l'aide de Java 8 Lambdas

Enfin - regardons une nouvelle solution, utilisant Lambdas dans Java 8; nous allons utiliser la méthode distinct () de l'API Stream qui retourne un flux composé d'éléments distincts en fonction du résultat retourné par la méthode equals () :

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

Et là, nous l'avons - 3 façons rapides de nettoyer tous les éléments en double d'une liste.

4. Conclusion

Cet article nous montre à quel point nous pouvons facilement supprimer les doublons d'une liste à l'aide de Java clair, Google Guava et Java 8.

L'implémentation de tous ces exemples et extraits de code se trouve dans le projet GitHub. Il s'agit d'un projet basé sur Maven, il devrait donc être facile à importer et à exécuter.