Nous allons voir rapidement comment supprimer facilement des doublons dans une liste Java, en utilisant du code natif et Guava ensuite.
Liste initiale utilisée dans la suite de l'article :
final List<Integer> listWithDuplicates = Lists.newArrayList(1, 1, 4, 2, 4, 5);
Utilisation d'un Set ne respectant pas l'ordre d'apparition des éléments de la liste initiale :
final List<Integer> listWithoutDuplicates = new ArrayList<>(new HashSet<>(listWithDuplicates));
System.out.println(listWithoutDuplicates); // [1, 2, 4, 5]
Utilisation d'un Set respectant l'ordre d'apparition des éléments de la liste initiale :
final List<Integer> listWithoutDuplicates = new ArrayList<>(new LinkedHashSet<>(listWithDuplicates));
System.out.println(listWithoutDuplicates); // [1, 4, 2, 5]
Utilisation de l'API Stream (l'ordre est conservé) :
final List<Integer> listWithoutDuplicates = listWithDuplicates.stream().distinct().toList(); // >= Java 16
final List<Integer> listWithoutDuplicates = listWithDuplicates.stream().distinct().collect(Collectors.toList()); // >= Java 8
System.out.println(listWithoutDuplicates); // [1, 4, 2, 5]
Utilisation d'un Set Guava ne respectant pas l'ordre d'apparition des éléments de la liste initiale :
final List<Integer> listWithoutDuplicates = Lists.newArrayList(Sets.newHashSet(listWithDuplicates));
System.out.println(listWithoutDuplicates); // [1, 2, 4, 5]
Utilisation d'un Set Guava respectant l'ordre d'apparition des éléments de la liste initiale :
final List<Integer> listWithoutDuplicates = Lists.newArrayList(Sets.newLinkedHashSet(listWithDuplicates));
System.out.println(listWithoutDuplicates); // [1, 4, 2, 5]
LauLem.com - Conditions Générales d'Utilisation - Informations Légales - Charte relative aux cookies - Charte sur la protection des données personnelles - A propos