Comment supprimer les doublons de ArrayList en Java ?
Suppression des doublons de ArrayList
Pour supprimer les doublons d'une ArrayList, il existe deux façons,
- Avec l'aide de HashSet
- Avec l'aide de LinkedHashSet
1) Supprimez les doublons à l'aide de HashSet
- Cette classe est disponible dans le package java.util.
- En utilisant la classe HashSet, nous pouvons supprimer l'élément en double de la ArrayList.
- En cas de HashSet, après avoir supprimé les éléments en double, l'ordre d'insertion des éléments n'est pas conservé (c'est-à-dire que l'ordre de récupération des éléments n'a pas besoin d'être le même que l'ordre d'insertion).
Le processus de suppression des éléments en double de ArrayList à l'aide de HashSet :
- Copier les éléments ArrayList dans HashSet.
- Après la copie, effacez ArrayList en utilisant la méthode clear().
- Copiez à nouveau les éléments HashSet dans ArrayList.
Exemple :
// Java program to demonstrate the example of // removing duplicate element from ArrayList // by using HashSet. import java.util.*; public class RemovedDuplicateFromArrayList { public static void main(String[] args) { // ArrayList Declaration ArrayList al = new ArrayList(); // By using add() method to add few elements in // ArrayList al.add(10); al.add(10); al.add(20); al.add(20); al.add(30); // Display ArrayList with duplicates System.out.print("Display ArrayList with duplicates : " + " "); System.out.println(al); // HashSet Declaration HashSet hs = new HashSet(); // By using addAll() method is to add all elements // to HashSet hs.addAll(al); // By using clear() method is to clear the ArrayList al.clear(); // Again by using addAll() method is to add all elements // to ArrayList al.addAll(hs); // Display ArrayList with no duplicates System.out.print("Display ArrayList with no duplicates : " + " "); System.out.println(al); } }
Sortie
Display ArrayList with duplicates : [10, 10, 20, 20, 30] Display ArrayList with no duplicates : [20, 10, 30]
2) Supprimez les doublons à l'aide de LinkedHashSet
- Cette classe est disponible dans le package java.util.
- En utilisant la classe LinkedHashSet, nous pouvons supprimer l'élément en double de la ArrayList.
- Dans le cas de LinkedHashSet, après avoir supprimé les éléments en double, l'ordre d'insertion des éléments est préservé (c'est-à-dire que l'ordre de récupération des éléments doit être le même que l'ordre d'insertion).
Le processus de suppression des éléments en double de ArrayList à l'aide de LinkedHashSet :
- Copier les éléments ArrayList dans LinkedHashSet.
- Après la copie, effacez ArrayList en utilisant la méthode clear().
- Copiez à nouveau les éléments LinkedHashSet dans ArrayList.
Exemple :
// Java program to demonstrate the example of // removing duplicate element from ArrayList // by using LinkedHashSet. import java.util.*; public class RemovedDuplicateFromArrayList { public static void main(String[] args) { // ArrayList Declaration ArrayList al = new ArrayList(); // By using add() method to add few elements in // ArrayList al.add(10); al.add(10); al.add(20); al.add(20); al.add(30); // Display ArrayList with duplicates System.out.print("Display ArrayList with duplicates : " + " "); System.out.println(al); // LinkedHashSet Declaration LinkedHashSet lhs = new LinkedHashSet(); // By using addAll() method is to add all elements // to LinkedHashSet lhs.addAll(al); // By using clear() method is to clear the ArrayList al.clear(); // Again by using addAll() method is to add all elements // to ArrayList al.addAll(lhs); // Display ArrayList with no duplicates System.out.print("Resultant ArrayList : " + " "); System.out.println(al); } }
Sortie
Display ArrayList with duplicates : [10, 10, 20, 20, 30] Resultant ArrayList : [10, 20, 30]