Java >> Tutoriel Java >  >> Tag >> ArrayList

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,

  1. Avec l'aide de HashSet
  2. 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]

Balise Java