Entfernen eines Elements aus einem Array in Java

1. Übersicht

In diesem kurzen Tutorial lernen wir die verschiedenen Möglichkeiten kennen, wie wir ein Element mithilfe der Apache Commons Lang-Bibliothek aus einem Array in Java entfernen können .

2. Maven

Fügen wir die commons-lang3- Abhängigkeit zur pom.xml- Datei unseres Projekts hinzu :

 org.apache.commons commons-lang3 3.9 

3. Entfernen eines Elements

Bevor wir beginnen, schauen wir uns an, was passiert, wenn wir ein Element aus einem Array entfernen, ohne die ArrayUtils- Klasse aus der Apache Commons Lang-Bibliothek zu verwenden.

Entfernen wir angesichts des folgenden Arrays ein Element am Index 2 :

Eine einfache Möglichkeit, dies zu tun, besteht darin, den in Index 2 gespeicherten Wert durch den in Index 3 gespeicherten Wert zu ersetzen, bis das Ende des Arrays erreicht ist:

Beachten Sie, dass durch Entfernen des Elements auf die oben beschriebene Weise die Größe des Arrays gleich bleibt und der am letzten Index gespeicherte Wert leer ist. Da Arrays während der Initialisierung eine feste Speichergröße zugewiesen haben , wird durch Entfernen eines Elements die Größe des Arrays nicht angepasst.

Schauen wir uns nun die Array-Darstellung an, wenn Sie ein Element mit der Methode remove aus der ArrayUtils- Klasse aus Apache Commons Lang entfernen :

Wie wir sehen können, wird die Arraygröße hier auf 5 angepasst, nachdem das Element entfernt wurde. Die Methode remove erstellt ein brandneues Array und kopiert alle Werte mit Ausnahme des zu entfernenden Werts.

Die ArrayUtils- Klasse bietet zwei Möglichkeiten zum Entfernen eines Elements aus einem Array. Schauen wir uns diese als nächstes an.

4. Verwenden von Index als Eingabe

Die erste Möglichkeit, ein Element zu entfernen, besteht in seinem Index mit ArrayUtils # remove :

public int[] removeAnElementWithAGivenIndex(int[] array, int index) { return ArrayUtils.remove(array, index); }

Eine weitere Variante ist die Methode removeAll , mit der wir mehrere Elemente aufgrund ihrer Indizes aus einem Array entfernen können:

public int[] removeAllElementsWithGivenIndices(int[] array, int... indices) { return ArrayUtils.removeAll(array, indices); }

5. Element als Eingabe verwenden

Oder nehmen wir an, wir kennen den Index dessen, was wir entfernen, nicht. In diesem Fall können wir das zu entfernende Element mit ArrayUtils # removeElement bereitstellen :

public int[] removeFirstOccurrenceOfGivenElement(int[] array, int element) { return ArrayUtils.removeElement(array, element); }

Hier ist eine weitere nützliche Variante dieser Methode ArrayUtils # removeElements , falls es mehr als ein Element gibt, das wir entfernen möchten:

public int[] removeAllGivenElements(int[] array, int... elements) { return ArrayUtils.removeElements(array, elements); }

Manchmal möchten wir alle Vorkommen eines bestimmten Elements entfernen. Wir können dies tun, indem wir ArrayUtils # removeAllOccurences verwenden :

public int[] removeAllOccurrencesOfAGivenElement(int[] array, int element) { return ArrayUtils.removeAllOccurences(array, element); }

6. Fazit

In diesem Artikel haben wir uns die verschiedenen Möglichkeiten zum Entfernen eines Elements / von Elementen aus einem Array mithilfe der Apache Commons Lang-Bibliothek angesehen.

Um mehr über die Randfälle zu erfahren, lesen Sie bitte den Quellcode für dieses Tutorial und die relevanten Unit-Tests, die auf GitHub verfügbar sind.