Entfernen Sie Duplikate aus dem Array in Java

Lovey Arora 12 Oktober 2023
  1. Verwenden eines temporären Arrays zum Entfernen von Duplikaten aus einem Array in Java
  2. Verwenden Sie einen separaten Index, um Duplikate aus einem Array in Java zu entfernen
  3. Verwenden Sie die Methode Arrays.sort(), um Duplikate aus einem Array in Java zu entfernen
Entfernen Sie Duplikate aus dem Array in Java

Ein Array ist eine Sammlung, die Elemente ähnlichen Typs mit ihrem zugewiesenen festen Speicherort speichern kann. Ein Array ermöglicht auch das Speichern doppelter Werte.

In diesem Tutorial wird gezeigt, wie Sie Duplikate in Java auf verschiedene Weise effizient aus einem Array entfernen können.

Verwenden eines temporären Arrays zum Entfernen von Duplikaten aus einem Array in Java

Bei dieser Methode besteht der Hauptpunkt darin, das Eingabearray zu durchlaufen und dann die eindeutigen Elemente aus dem ursprünglichen Array in ein temporäres Array zu kopieren. Dazu verwenden wir die for-Schleife und die if-Anweisung. Schließlich werden die Elemente aus dem temporären Array in das ursprüngliche Array kopiert und wir drucken es aus.

Siehe den Code unten.

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]+" ");  
    }  
}

Ausgabe:

56 77 78 98 

Beachten Sie, dass wir das obige Programm nur auf sortierten Arrays implementieren können.

Verwenden Sie einen separaten Index, um Duplikate aus einem Array in Java zu entfernen

Hier wird die if-Anweisung verwendet, um zu überprüfen, ob das Element gleich seinem nächsten Element ist. Wenn nicht, wird dieses bestimmte Element nur an einem Index in diesem ähnlichen Array hinzugefügt. Dies geschieht, um zu zeigen, dass dieses bestimmte Element im Array nur einmal hinzugefügt wird.

Diese Methode ist auch nur anwendbar, wenn das Array sortiert ist.

Dies implementieren wir im folgenden Code-Snippet.

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] + " ");
  }
}

Ausgabe:

11 24 37 44 47 56 

Verwenden Sie die Methode Arrays.sort(), um Duplikate aus einem Array in Java zu entfernen

Die Funktion Arrays.sort() kann Arrays in Java sortieren. Diese Methode wird nicht nur für Linked Lists, ArrayLists usw. verwendet, sondern wir können sie auch für primitive Datentypen verwenden.

Die Zeit- und Raumkomplexität ist nicht festgelegt, wenn wir diese Methode verwenden. Es hängt ganz von der Implementierung des Codes ab.

Beispielsweise,

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] + " ");
  }
}

Ausgabe:

2 3 7 8 11

Wie bereits erwähnt, werden die doppelten Elemente aus den unsortierten Arrays ebenso wie sortierte Arrays entfernt. Aber hier wird eine zusätzliche Methode verwendet, um das unsortierte Array zu sortieren.

Es ist zu beachten, dass man überprüfen sollte, ob das Array sortiert ist oder nicht, und dann mit dem nächsten Schritt zum Entfernen der Duplikate fortfahren.

Verwandter Artikel - Java Array