So entfernen Sie Duplikate aus einem Array in Java

In verschiedenen Datenverarbeitungsszenarien in der Programmierung besteht die Notwendigkeit, Duplikate aus den Containern, also dem Array, zu entfernen. Dies geschieht, um die Lesbarkeit des Codes zu verbessern und den Speicher effektiv zu verwalten. Um diese Anfrage zu beantworten, bietet Java einen integrierten Container und andere alternative Algorithmusansätze, die den Entwickler in hohem Maße unterstützen.

Wie entferne ich Duplikate aus einem Array in Java?

Um Duplikate aus einem Array zu entfernen, sollten Sie die folgenden Ansätze in Betracht ziehen:

  • Mit „HashSet“.
  • Verwenden eines separaten Index.
  • Verwenden eines separaten Arrays.

Ansatz 1: Duplikate mit HashSet aus einem Array entfernen

Der effektivste Ansatz zum Entfernen von Duplikaten aus einem Array in Java ist „HashSet” da das Set die doppelten Werte nicht speichert:

import java.util.*;
public class Removeduplicates {
public static void main (String[] args) {
  int givenArray[] = {1, 2, 2, 3, 3, 4, 5};
  int n = givenArray.length;
  HashSet x = new HashSet();
  for (int i= 0; i<n; i++)
  x.add(givenArray[i]);
  System.out.print(x);
}}

In diesem Codeblock:

  • Importieren Sie die für den Zugriff auf HashSet erforderliche Bibliothek.
  • Erstellen Sie im nächsten Schritt ein Integer-Array und berechnen Sie seine Länge über „Länge“ Eigentum.
  • Erstellen Sie nun ein HashSet-Objekt und iterieren Sie das Array basierend auf seiner Länge über „für”-Schleife und hängen Sie die Array-Elemente im HashSet an.
  • Das HashSet entfernt automatisch die in den Werten gefundene Duplikate.

Ausgabe

Dieses Ergebnis impliziert, dass die Duplizierung erfolgreich aus den Array-Elementen entfernt wurde.

Ansatz 2: Duplikate aus einem Array mithilfe eines separaten Index entfernen

In diesem Codebeispiel können die doppelten Werte aus einem Array entfernt werden, indem das übergebene Array iteriert und die Elemente über eine benutzerdefinierte Funktion in einem separaten Index gespeichert werden:

public class Removeduplicates {
public static int omitDuplicates(int array[], int arrayLength){
  if (arrayLength == 0 || arrayLength == 1) {
  return arrayLength;
}
  int j = 0;
  for (int i = 0; i < arrayLength - 1; i++) {
  if (array[i] != array[i + 1]) {
    array[j++] = array[i];
}}
  array[j++] = array[arrayLength - 1];
  return j;
}
public static void main(String[] args){
  int array[] = {10, 10, 20, 20, 30};
  int arrayLength = array.length;
  int j=0;
  j = omitDuplicates(array, arrayLength);
  for (int i = 0; i < j; i++)
  System.out.print(array[i] + " ");
}}

Führen Sie in diesem Codeausschnitt die folgenden Schritte aus:

  • Definieren Sie eine Funktion mit dem Namen „omitDuplicates()“. Der angegebene erste Parameter bezieht sich auf das übergebene Array und der zweite Parameter entspricht dessen Länge.
  • In seiner Definition lautet „WennDie Bedingung gibt an, dass das Array bereits sortiert ist, wenn die Länge 0 oder 1 beträgt.
  • Initialisieren Sie im nächsten Schritt den Wert von „J“ Zu „0“, der auf einen separaten Index verweist.
  • Nun iterieren Sie das übergebene Array so, dass, wenn das iterierte Element nicht gleich seinem nächsten Element ist, es am j-ten Index im selben Array angehängt wird.
  • Dies bedeutet, dass das Zielelement nur einmal im Array hinzugefügt wird
  • In „hauptsächlich”, initialisieren Sie das Array, das zur Auswertung übergeben werden soll.
  • Berechnen Sie außerdem seine Länge mit „Länge“ Eigentum.
  • Rufen Sie abschließend die definierte Funktion auf, indem Sie das Array bzw. seine Länge als Argumente übergeben und verwenden Sie „für”-Schleife zum Drucken der Array-Elemente.

Ausgabe

Von hier aus kann überprüft werden, ob die Duplizierung in den Array-Elementen ordnungsgemäß entfernt wird.

Ansatz 3: Entfernen Sie Duplikate aus einem Array mithilfe eines separaten Arrays

Bei diesem speziellen Ansatz wird die Duplizierung von Elementen aus einem Array vermieden, indem die eindeutigen Elemente in einem separaten Array gespeichert werden:

public class Removeduplicates {
public static int omitDuplicates(int array[], int arrayLength){
  if (arrayLength == 0 || arrayLength == 1) {
  return arrayLength;
}
  int[] newArray = new int[arrayLength];
  int j = 0;
  for (int i = 0; i < arrayLength - 1; i++) {
  if (array[i] != array[i + 1]) {
    newArray[j++] = array[i];
}}
  newArray[j++] = array[arrayLength - 1];
  for (int i = 0; i < j; i++) {   array[i] = newArray[i];
}
  return j;
}
public static void main(String[] args){
  int array[] = {10, 10, 15, 15, 20};
  int arrayLength = array.length;
  arrayLength = omitDuplicates(array, arrayLength);
  for (int i = 0; i < arrayLength; i++)
  System.out.print(array[i] + " ");
}}

Gemäß diesen Codezeilen:

  • Erinnern Sie sich an die besprochenen Ansätze zum Definieren einer Funktion und zum Analysieren der Länge des Arrays.
  • Erstellen Sie anschließend ein ganzzahliges Array zur Aufnahme der eindeutigen Elemente, das der Größe des übergebenen Arrays entspricht.
  • Iterieren Sie nun das übergebene Array und kopieren Sie alle eindeutigen Elemente aus dem übergebenen Array in das neu erstellte Array. Behalten Sie außerdem die Anzahl der eindeutigen Elemente bei, indem Sie „J“.
  • Wende an „für”-Schleife, um entlang der eindeutigen Elemente zu iterieren, die im neu erstellten Integer-Array platziert sind, und sie erneut im übergebenen Array zu speichern.
  • In „hauptsächlich” Wiederholen Sie die besprochene Methode zum Erstellen und Übergeben des Arrays und seiner Länge als Argumente der Funktion und zeigen Sie das Array an.

Ausgabe

Abschluss

Um Duplikate aus einem Array in Java zu entfernen, verwenden Sie ein „HashSet”, ein separater Index oder ein separates Array. Der HashSet-Ansatz ist am effektivsten, da er die Duplikate automatisch und ohne irgendeinen Algorithmus entfernt.

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen