remove delete an element from an array java
Apreneu diversos mètodes per suprimir o eliminar un element d'una matriu a Java, com ara fer servir una altra matriu, fer servir corrents de Java 8 i fer servir ArrayList:
Les matrius Java no proporcionen un mètode d’eliminació directa per eliminar un element. De fet, ja hem comentat que les matrius a Java són estàtiques, de manera que la mida de les matrius no pot canviar un cop s’instancien. Per tant, no podem eliminar un element i reduir la mida de la matriu.
Per tant, si volem suprimir o eliminar un element de la matriu, hem d’emprar diferents mètodes que solen ser solucions.
=> Consulteu la sèrie completa de cursos de formació de Java per a principiants
Què aprendreu:
Eliminar / suprimir un element d'una matriu a Java
En aquest tutorial, parlarem dels diversos mètodes per suprimir un element d'una matriu.
Inclou:
- Utilitzant una altra matriu
- Utilitzant corrents de Java 8
- Utilitzant ArrayList
- Utilització de System.arraycopy ()
Utilitzant una altra matriu
Aquest és el mètode tradicional i una mica ineficient de suprimir un element de matriu. Aquí definim una nova matriu amb una mida inferior a 1 a la matriu original. A continuació, copiem els elements de la matriu original a la nova matriu. Però mentre fem aquesta còpia, saltem l'element a l'índex especificat.
D'aquesta manera, copiem tots els elements, excepte l'element que s'ha de suprimir, a la nova matriu, indicant que l'element s'ha suprimit.
Podem representar aquesta operació pictòricament com es mostra a continuació.
Implantem aquest mètode en un programa Java.
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 Sortida:

Ús de corrents de Java 8
Els fluxos són una nova addició a Java a partir de la versió 8. Mitjançant els fluxos Java8, podem eliminar un element d’una matriu. Per fer-ho, primer, la matriu es converteix en un flux. A continuació, l'element de l'índex especificat se suprimeix mitjançant el mètode de filtratge de fluxos.
Un cop esborrat l'element, mitjançant els mètodes 'mapa' i 'toArray', el flux es torna a convertir a la matriu.
A continuació es mostra la implementació de l'eliminació d'un element d'una matriu mitjançant un flux.
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)); } }
Sortida:

Utilitzant ArrayList
Podem utilitzar una ArrayList per realitzar aquesta operació. Per eliminar un element d’un array, primer el convertim en un ArrayList i després fem servir el mètode ‘remove’ d’ArrayList per eliminar l’element d’un índex concret.
Un cop eliminat, tornem a convertir ArrayList a la matriu.
La següent implementació mostra l'eliminació de l'element d'una matriu mitjançant ArrayList.
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)); } }
Sortida:

El programa anterior produeix sortida per a dues condicions. En primer lloc, es passa un índex inexistent (10), és a dir, més enllà de la mida actual de la matriu. El programa mostra un missatge adequat i no elimina cap element.
En el segon cas, es passa un índex = 2. Aquesta vegada l'element de la posició 2 se suprimeix i es passa la matriu resultant.
Utilització de System.arraycopy ()
Aquest mètode és similar al primer mètode, tret que fem servir el mètode 'arrayCopy' per copiar els elements de la matriu original a la nova matriu.
En primer lloc, copiem els elements de la matriu original de 0 per indexar-los a la nova matriu. A continuació, copiem els elements de l’índex + 1 fins a la longitud a la nova matriu. Així, mentre copiem, saltem l'element a l'índex especificat i generem una nova matriu.
trobar diferència entre dos fitxers Linux
Aquesta nova matriu indica la matriu resultant que s’obté després de suprimir un element de l’índex especificat.
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)); } }
Sortida:

Preguntes freqüents
P # 1) Com eliminar un element d'una matriu?
Resposta: Java no proporciona un mètode directe per eliminar un element de la matriu. Però tenint en compte un índex en què s'ha de suprimir l'element, podem utilitzar ArrayList per eliminar l'element de l'índex especificat.
Per a això, primer, convertim la matriu a ArrayList i, mitjançant el mètode remove, eliminem l'element. Un cop fet això, convertim ArrayList de nou a la matriu. També hi ha diverses altres solucions que podem emprar amb aquest propòsit.
Q # 2) Què fa ArrayList remove?
Resposta: El mètode ArrayList remove elimina l'element de l'ArrayList d'un índex donat que es proporciona com a argument.
com obrir el fitxer .eps
P # 3) Com s'eliminen els duplicats d'una matriu a Java?
Resposta: Els elements duplicats d'una matriu es poden eliminar utilitzant una matriu temporal que comptarà els elements un per un i només posarà els elements únics a la matriu temporal. Cal eliminar una matriu per eliminar els duplicats.
P # 4) El filtre retorna una nova matriu?
Resposta: Sí. El filtre retorna la nova matriu sense afectar la matriu original.
Q # 5) Com funciona R voleu treballar a Java?
Resposta: El mètode d'eliminació d'ArrayList a Java elimina l'element de l'índex especificat. A la llista enllaçada, el mètode d'eliminació també elimina el node a la posició indicada.
Conclusió
En aquest tutorial, hem vist les diverses maneres o solucions alternatives mitjançant les quals podem eliminar l'element d'una matriu d'un índex determinat.
En els nostres temes posteriors, parlarem d'algunes operacions més realitzades en matrius a Java.
=> Consulteu aquí la Guia de formació intensiva en Java
Lectura recomanada
- Tutorial de longitud de matriu de Java amb exemples de codi
- Java Array - Com imprimir elements d'un array a Java?
- Com ordenar una matriu a Java: tutorial amb exemples
- Matriu Java: declarar, crear i inicialitzar una matriu a Java
- Matriu genèrica de Java: com simular matrius genèrics a Java?
- Inverteix una matriu a Java: 3 mètodes amb exemples
- Tutorial de reflexió de Java amb exemples
- Com passar / retornar una matriu a Java