Supprimer les doublons du tableau en Java

Lovey Arora 12 octobre 2023
  1. Utiliser un tableau temporaire pour supprimer les doublons d’un tableau en Java
  2. Utiliser un index distinct pour supprimer les doublons d’un tableau en Java
  3. Utilisez la méthode Arrays.sort() pour supprimer les doublons d’un tableau en Java
Supprimer les doublons du tableau en Java

Un tableau est une collection qui peut stocker des éléments de types similaires avec leur emplacement mémoire fixe qui leur est attribué. Un tableau permet également de stocker des valeurs en double.

Ce didacticiel montrera comment supprimer efficacement les doublons d’un tableau en Java de différentes manières.

Utiliser un tableau temporaire pour supprimer les doublons d’un tableau en Java

Dans cette méthode, le point principal est de parcourir le tableau d’entrée, puis de copier les éléments uniques du tableau d’origine dans un tableau temporaire. Pour y parvenir, nous utiliserons la boucle for et l’instruction if. Enfin, les éléments du tableau temporaire sont copiés dans le tableau d’origine et nous l’imprimons.

Voir le code ci-dessous.

public class Main{
public static int remove_Duplicate_Elements(int arr[], int n){
        if (n==0 || n==1){
            return n;  
        }  
        int[] tempA = new int[n];  
        int j = 0;  
        for (int i=0; i<n-1; i++){
            if (arr[i] != arr[i+1]){
                tempA[j++] = arr[i];  
            }  
         }  
        tempA[j++] = arr[n-1];       
        for (int i=0; i<j; i++){
            arr[i] = tempA[i];  
        }  
        return j;  
    }  
       
    public static void main (String[] args) {
        int arr[] = {56,56,77,78,78,98,98};  
        int length = arr.length;  
        length = remove_Duplicate_Elements(arr, length);    
        for (int i=0; i<length; i++)  
           System.out.print(arr[i]+" ");  
    }  
}

Production:

56 77 78 98 

Notez que nous ne pouvons implémenter le programme ci-dessus que sur des tableaux triés.

Utiliser un index distinct pour supprimer les doublons d’un tableau en Java

Ici, l’instruction if est utilisée pour vérifier si l’élément est égal à son élément suivant. Sinon, cet élément particulier est ajouté à un certain index dans ce tableau similaire uniquement. Ceci est fait pour montrer que dans le tableau, cet élément particulier n’est ajouté qu’une seule fois.

Cette méthode est également applicable uniquement si le tableau est trié.

Nous l’implémentons dans l’extrait de code suivant.

public class Main {
  public static int remove_Duplicates(int a[], int n) {
    if (n == 0 || n == 1) {
      return n;
    }

    int j = 0;

    for (int i = 0; i < n - 1; i++) {
      if (a[i] != a[i + 1]) {
        a[j++] = a[i];
      }
    }

    a[j++] = a[n - 1];

    return j;
  }

  public static void main(String[] args) {
    int a[] = {11, 24, 24, 37, 37, 44, 47, 47, 56, 56};

    int n = a.length;

    int j = 0;

    j = remove_Duplicates(a, n);

    for (int i = 0; i < j; i++) System.out.print(a[i] + " ");
  }
}

Production:

11 24 37 44 47 56 

Utilisez la méthode Arrays.sort() pour supprimer les doublons d’un tableau en Java

La fonction Arrays.sort() permet de trier des tableaux en Java. Cette méthode n’est pas seulement utilisée pour les listes chaînées, les listes de tableaux, etc., mais nous pouvons également l’utiliser pour les types de données primitifs.

La complexité temporelle et spatiale n’est pas fixe si nous utilisons cette méthode. Cela dépend totalement de la mise en œuvre du code.

Par example,

import java.util.Arrays;
public class Main {
  public static int remove_Duplicate_Elements(int arr[], int n) {
    if (n == 0 || n == 1) {
      return n;
    }
    int[] tempA = new int[n];
    int j = 0;
    for (int i = 0; i < n - 1; i++) {
      if (arr[i] != arr[i + 1]) {
        tempA[j++] = arr[i];
      }
    }
    tempA[j++] = arr[n - 1];
    for (int i = 0; i < j; i++) {
      arr[i] = tempA[i];
    }
    return j;
  }

  public static void main(String[] args) {
    int arr[] = {11, 7, 2, 2, 7, 8, 8, 8, 3};
    Arrays.sort(arr);
    int length = arr.length;
    length = remove_Duplicate_Elements(arr, length);
    for (int i = 0; i < length; i++) System.out.print(arr[i] + " ");
  }
}

Production:

2 3 7 8 11

Comme observé, les éléments en double des tableaux non triés sont également supprimés de la même manière que les tableaux triés. Mais ici, une méthode supplémentaire est utilisée pour trier le tableau non trié.

Il est à noter qu’il faut vérifier si le tableau est trié ou non, puis passer à l’étape suivante de suppression des doublons.

Article connexe - Java Array