remove delete an element from an array java
Lernen Sie verschiedene Methoden zum Löschen oder Entfernen eines Elements aus einem Array in Java kennen, z. B. Verwenden eines anderen Arrays, Verwenden von Java 8-Streams, Verwenden von ArrayList:
Java-Arrays bieten keine direkte Entfernungsmethode zum Entfernen eines Elements. Tatsächlich haben wir bereits diskutiert, dass Arrays in Java statisch sind, sodass sich die Größe der Arrays nach ihrer Instanziierung nicht ändern kann. Daher können wir kein Element löschen und die Arraygröße reduzieren.
Wenn wir also ein Element aus dem Array löschen oder entfernen möchten, müssen wir verschiedene Methoden verwenden, die normalerweise Problemumgehungen darstellen.
=> Weitere Informationen finden Sie in der vollständigen Java-Schulungsserie für Anfänger
Was du lernen wirst:
Entfernen / Löschen eines Elements aus einem Array in Java
In diesem Tutorial werden die verschiedenen Methoden zum Löschen eines Elements aus einem Array erläutert.
Es enthält:
- Verwenden eines anderen Arrays
- Verwenden von Java 8-Streams
- ArrayList verwenden
- Verwenden von System.arraycopy ()
Verwenden eines anderen Arrays
Dies ist die traditionelle und etwas ineffiziente Methode zum Löschen eines Array-Elements. Hier definieren wir ein neues Array mit einer Größe von weniger als 1 zum ursprünglichen Array. Dann kopieren wir die Elemente aus dem ursprünglichen Array in das neue Array. Beim Kopieren überspringen wir jedoch das Element am angegebenen Index.
Auf diese Weise kopieren wir alle Elemente außer dem zu löschenden Element in das neue Array, um anzuzeigen, dass das Element gelöscht wird.
Wir können diesen Vorgang wie unten gezeigt bildlich darstellen.
Implementieren wir diese Methode in einem Java-Programm.
import java.util.Arrays; class Main { public static void main(String() args) { // define original array int() tensArray = { 10,20,30,40,50,60}; // Print the original array System.out.println('Original Array: ' + Arrays.toString(tensArray)); // the index at which the element in the array is to be removed int rm_index = 2; // display index System.out.println('Element to be removed at index: ' + rm_index); // if array is empty or index is out of bounds, removal is not possible if (tensArray == null || rm_index<0 || rm_index>= tensArray.length) { System.out.println('No removal operation can be performed!!'); } // Create a proxy array of size one less than original array int() proxyArray = new int(tensArray.length - 1); // copy all the elements in the original to proxy array except the one at index for (int i = 0, k = 0; i Ausgabe:

Verwenden von Java 8-Streams
Streams sind eine neue Ergänzung zu Java ab Version 8. Mit Java8-Streams können wir ein Element aus einem Array löschen. Dazu wird zunächst das Array in einen Stream konvertiert. Anschließend wird das Element am angegebenen Index mithilfe der Filtermethode für Streams gelöscht.
Sobald das Element mit den Methoden 'map' und 'toArray' gelöscht wurde, wird der Stream wieder in das Array konvertiert.
Die Implementierung des Entfernens eines Elements aus einem Array mithilfe eines Streams wird unten gezeigt.
import java.util.Arrays; import java.util.stream.IntStream; class Main { // Function to remove the element public static int() removeArrayElement(int() oddArray, int index) { //array is empty or index is beyond array bounds if (oddArray == null || index <0 || index>= oddArray.length) { return oddArray; } // delete the element at specified index and return the array return IntStream.range(0, oddArray.length) .filter(i -> i != index) .map(i ->oddArray(i)).toArray(); } public static void main(String() args) { int() oddArray = { 1, 3,5,7,9,11}; // define array of odd numbers System.out.println('Original Array: ' + Arrays.toString(oddArray)); // Print the resultant array int index = 2; // index at which element is to be removed System.out.println('Element to be removed at index: ' + index); // display index // function call removeArrayElement oddArray = removeArrayElement(oddArray, index); // Print the resultant array System.out.println('Array after deleting element: ' + Arrays.toString(oddArray)); } }
Ausgabe:

ArrayList verwenden
Wir können eine ArrayList verwenden, um diese Operation auszuführen. Um ein Element aus einem Array zu entfernen, konvertieren wir zuerst das Array in eine ArrayList und verwenden dann die Methode 'remove' von ArrayList, um das Element an einem bestimmten Index zu entfernen.
Nach dem Entfernen konvertieren wir die ArrayList zurück in das Array.
Die folgende Implementierung zeigt das Entfernen des Elements aus einem Array mithilfe von ArrayList.
kostenlose Firewall-Software für Windows 10
import java.util.*; import java.util.stream.*; class Main { public static int() remove_Element(int() myArray, int index) { if (myArray == null || index <0 || index>= myArray.length) { System.out.println('non-existing index'); return myArray; } //array to arrayList List arrayList = IntStream.of(myArray) .boxed().collect(Collectors.toList()); // Remove the specified element arrayList.remove(index); // return the resultant array returnarrayList.stream().mapToInt(Integer::intValue).toArray(); } public static void main(String() args) { int() myArray = { 11,22,33,44,55,66,77,88,99,111 }; System.out.println('Original Array: ' + Arrays.toString(myArray)); int index = 10; System.out.println('Index at which element is to be deleted: ' + index); myArray = remove_Element(myArray, index); System.out.println('Resultant Array: ' + Arrays.toString(myArray) + '
'); index = 2; System.out.println('Index at which element is to be deleted: ' + index); myArray = remove_Element(myArray, index); System.out.println('Resultant Array: ' + Arrays.toString(myArray)); } }
Ausgabe:

Das obige Programm erzeugt eine Ausgabe für zwei Bedingungen. Zunächst wird ein nicht existierender Index (10) übergeben, d. H. Jenseits der aktuellen Arraygröße. Das Programm zeigt eine entsprechende Meldung an und löscht kein Element.
Im zweiten Fall wird ein Index = 2 übergeben. Dieses Mal wird das Element an Position 2 gelöscht und das resultierende Array übergeben.
Verwenden von System.arraycopy ()
Diese Methode ähnelt der ersten Methode, außer dass wir die Methode 'arrayCopy' verwenden, um die Elemente des ursprünglichen Arrays in das neue Array zu kopieren.
Zuerst kopieren wir die Elemente des ursprünglichen Arrays von 0, um sie in das neue Array zu indizieren. Als nächstes kopieren wir die Elemente von Index + 1 bis zur Länge in das neue Array. Während des Kopierens überspringen wir daher das Element am angegebenen Index und generieren ein neues Array.
Dieses neue Array gibt das resultierende Array an, das nach dem Löschen eines Elements am angegebenen Index erhalten wird.
import java.util.Arrays; class Main { public static void main(String() args) { // define the array of integers int() intArray = { 10,20,30,40,50 }; // display the original array System.out.println('Original Array: ' + Arrays.toString(intArray)); // index at which the element is to be deleted int index = 2; // the index System.out.println('Element to be deleted at index: ' + index); // check if the array is empty or index is out of bounds if (intArray == null || index <0 || index>= intArray.length) { System.out.println('No removal operation can be performed!!'); } // create an array to hold elements after deletion int() copyArray = new int(intArray.length - 1); // copy elements from original array from beginning till index into copyArray System.arraycopy(intArray, 0, copyArray, 0, index); // copy elements from original array from index+1 till end into copyArray System.arraycopy(intArray, index + 1, copyArray, index, intArray.length - index - 1); // display the copied array after deletion System.out.println('Array after deleting an element: ' + Arrays.toString(copyArray)); } }
Ausgabe:

Häufig gestellte Fragen
F # 1) Wie entferne ich ein Element aus einem Array?
Antworten: Java bietet keine direkte Methode zum Entfernen eines Elements aus dem Array. Bei einem Index, an dem das Element gelöscht werden soll, können wir ArrayList verwenden, um das Element am angegebenen Index zu entfernen.
Dazu konvertieren wir zuerst das Array in ArrayList und entfernen das Element mit der Methode remove. Sobald dies erledigt ist, konvertieren wir die ArrayList zurück in das Array. Es gibt auch mehrere andere Problemumgehungen, die wir für diesen Zweck verwenden können.
F # 2) Was macht das Entfernen von ArrayList?
Antworten: Die ArrayList remove-Methode entfernt das Element in der ArrayList an einem bestimmten Index, der als Argument angegeben wird.
fire TV stick VPN kostenlos
F # 3) Wie entferne ich Duplikate aus einem Array in Java?
Antworten: Doppelte Elemente aus einem Array können mithilfe eines temporären Arrays entfernt werden, das die Elemente einzeln zählt und nur die eindeutigen Elemente in das temporäre Array einfügt. Ein Array muss sortiert werden, um die Duplikate zu entfernen.
F # 4) Gibt Filter ein neues Array zurück?
Antworten: Ja. Filter gibt das neue Array zurück, ohne das ursprüngliche Array zu beeinflussen.
F # 5) Wie funktioniert R. Arbeit in Java entfernen?
Antworten: Die Methode remove von ArrayList in Java entfernt das Element am angegebenen Index. Auch in der verknüpften Liste entfernt die Methode remove den Knoten an der angegebenen Position.
Fazit
In diesem Tutorial haben wir die verschiedenen Methoden oder Problemumgehungen gesehen, mit denen wir das Element an einem bestimmten Index aus einem Array entfernen können.
In unseren folgenden Themen werden wir einige weitere Operationen diskutieren, die für Arrays in Java ausgeführt werden.
=> Lesen Sie hier den Intensive Java Training Guide
Literatur-Empfehlungen
- Java Array Length Tutorial mit Codebeispielen
- Java Array - Wie drucke ich Elemente eines Arrays in Java?
- So sortieren Sie ein Array in Java - Tutorial mit Beispielen
- Java-Array - Deklarieren, Erstellen und Initialisieren eines Arrays in Java
- Java Generic Array - Wie simuliere ich generische Arrays in Java?
- Ein Array in Java umkehren - 3 Methoden mit Beispielen
- Java Reflection Tutorial mit Beispielen
- Übergeben / Zurückgeben eines Arrays in Java