Element aus Array entfernen und dann andere Elemente in Java verschieben

Rupam Yadav 12 Oktober 2023
  1. Verwenden Sie die for-Schleife, um Element aus Array und Shift in Java zu entfernen
  2. Verwenden Sie System.arraycopy(), um ein Element aus dem Array zu entfernen und in Java zu verschieben
  3. Verwendung von ArrayList zum Entfernen von Elementen aus Array und Verschieben in Java
Element aus Array entfernen und dann andere Elemente in Java verschieben

Array in Java ist eine Sammlung von Elementen desselben Typs mit fester Größe. Java bietet verschiedene Methoden, um verschiedene Manipulationen in Bezug auf ein Array durchzuführen.

Verwenden Sie die for-Schleife, um Element aus Array und Shift in Java zu entfernen

Bei diesem Ansatz verwenden wir mehrere for-Schleifen, um alle Elemente von arr zu durchlaufen und nach dem Element zu suchen, das wir entfernen möchten. Wenn das zu löschende Element gefunden ist, erstellen wir ein neues Array newArr mit der Grösse arr.length-1. Wir führen eine weitere Schleife aus, um alle Elemente vor dem Index zu kopieren, an dem sich elementToBeDeleted befindet.

Danach führen wir eine weitere Schleife aus, um die verbleibenden Elemente des Arrays nach dem elementToBeDeleted zu kopieren, wobei dasjenige übrig bleibt, das wir löschen müssen.

import java.util.Arrays;

public class Test {
  public static void main(String[] args) {
    int[] arr = {3, 1, 6, 5, 2, 8, 4};
    int[] newArr = null;
    int elementToBeDeleted = 5;
    System.out.println("Original Array is: " + Arrays.toString(arr));

    for (int i = 0; i < arr.length - 1; i++) {
      if (arr[i] == elementToBeDeleted) {
        newArr = new int[arr.length - 1];
        for (int index = 0; index < i; index++) {
          newArr[index] = arr[index];
        }
        for (int j = i; j < arr.length - 1; j++) {
          newArr[j] = arr[j + 1];
        }
        break;
      }
    }
    System.out.println("New Array after deleting element = " + elementToBeDeleted
        + " and shifting: " + Arrays.toString(newArr));
  }
}

Ausgabe:

Original Array is: [3, 1, 6, 5, 2, 8, 4]
New Array after deleting element = 5 and shifting: [3, 1, 6, 2, 8, 4]

Verwenden Sie System.arraycopy(), um ein Element aus dem Array zu entfernen und in Java zu verschieben

Das System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) kopiert das Quell-Array in das Ziel-Array, wobei der Kopiervorgang von der Position der Quelle zur Position des Ziels bis zur angegebenen Länge gestartet wird.

Hier übergeben wir unser Quellarray arr an eine Methode removeElement, die zwei System.copy()-Methoden ausführt. Wir erstellen arrDestination mit einer Länge von 1 kleiner als die Länge von arr, wenn ein Element gelöscht wird.

Zuerst kopieren wir die Elemente vor dem Index 2, da wir die 6 aus arr löschen müssen. Rufen Sie als Nächstes die verbleibenden Elemente ab, die nach dem Index des zu löschenden Elements vorhanden sind.

import java.util.Arrays;
public class Test {
  public static void main(String[] args) {
    int[] arr = {3, 1, 6, 5, 2, 8, 4};
    removeElement(arr, 2);
  }
  public static void removeElement(int[] arr, int index) {
    int[] arrDestination = new int[arr.length - 1];
    int remainingElements = arr.length - (index + 1);
    System.arraycopy(arr, 0, arrDestination, 0, index);
    System.arraycopy(arr, index + 1, arrDestination, index, remainingElements);
    System.out.println("Elements -- " + Arrays.toString(arrDestination));
  }
}

Ausgabe:

Elements -- [3, 1, 5, 2, 8, 4]

Verwendung von ArrayList zum Entfernen von Elementen aus Array und Verschieben in Java

Wir können ein Array in eine ArrayList umwandeln, um ein Element aus dem Array zu entfernen, und das Mischen würde von der ArrayList selbst übernommen.

Im folgenden Code erstellen wir ein Integer-Objektarray arr. Anschließend übergeben wir das Array und den Index des zu löschenden Elements an die Methode removeElementUsingCollection, die das Array manipuliert und ein Objektarray zurückliefert.

Das übergebene Array wird in eine ArrayList tempList umgewandelt und der Aufruf der Methode remove() entfernt das Element am angegebenen Index aus der Liste. Es gibt die Liste zurück in ein Array konvertiert zurück.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
  public static void main(String[] args) {
    Integer[] arr = {3, 1, 6, 5, 2, 8, 4};
    int elementToBeDeleted = 2;

    System.out.println("Original Array " + Arrays.toString(arr));
    for (int i = 0; i < arr.length; i++) {
      if (arr[i] == elementToBeDeleted) {
        arr = removeElementUsingCollection(arr, i);
        break;
      }
    }
    System.out.println("Array after removing element : " + elementToBeDeleted + " -- ");
    for (int i = 0; i < arr.length; i++) {
      System.out.print(" " + arr[i]);
    }
  }

  public static Integer[] removeElementUsingCollection(Integer[] arr, int index) {
    List<Integer> tempList = new ArrayList<Integer>(Arrays.asList(arr));
    tempList.remove(index);
    return tempList.toArray(new Integer[0]);
  }
}

Ausgabe:

Original Array [3, 1, 6, 5, 2, 8, 4]
Array after removing element : 2 -- 
 3 1 6 5 8 4
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Verwandter Artikel - Java Array