remove delete an element from an array java
Aflați diferite metode pentru a șterge sau a elimina un element dintr-o matrice în Java, cum ar fi Utilizarea unei alte matrice, Utilizarea fluxurilor Java 8, Utilizarea ArrayList:
Tablourile Java nu oferă o metodă de eliminare directă pentru a elimina un element. De fapt, am discutat deja că matricile în Java sunt statice, astfel încât dimensiunea matricilor nu se poate schimba odată ce sunt instantaneate. Astfel, nu putem șterge un element și nu putem reduce dimensiunea matricei.
Deci, dacă dorim să ștergem sau să eliminăm un element din matrice, trebuie să folosim diferite metode care sunt de obicei soluții alternative.
=> Consultați seria completă de instruiri Java pentru începători
Ce veți învăța:
Eliminați / ștergeți un element dintr-o matrice în Java
În acest tutorial, vom discuta diferitele metode de ștergere a unui element dintr-o matrice.
Include:
- Folosind o altă matrice
- Utilizarea fluxurilor Java 8
- Folosind ArrayList
- Utilizarea System.arraycopy ()
Folosind un alt tablou
Aceasta este metoda tradițională și oarecum ineficientă de ștergere a unui element matrice. Aici definim o nouă matrice cu dimensiunea mai mică de 1 față de matricea originală. Apoi copiem elementele din matricea originală în matricea nouă. Dar, în timp ce facem această copiere, omitem elementul la indexul specificat.
În acest fel copiem toate elementele, cu excepția elementului care trebuie șters în noua matrice, indicând faptul că elementul este șters.
Putem reprezenta această operație pictural, așa cum se arată mai jos.
Să implementăm această metodă într-un program 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 Ieșire:
Utilizarea fluxurilor Java 8
Fluxurile sunt o nouă adăugire la Java începând cu versiunea 8. Folosind fluxurile Java8, putem șterge un element dintr-o matrice. Pentru a face acest lucru, mai întâi, matricea este convertită într-un flux. Apoi elementul de la indexul specificat este șters folosind metoda de filtrare a fluxurilor.
Odată ce elementul este șters, folosind metodele „hartă” și „toArray”, fluxul este convertit înapoi în matrice.
Implementarea eliminării unui element dintr-un tablou folosind fluxul este prezentată mai jos.
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)); } }
Ieșire:
Folosind ArrayList
Putem folosi un ArrayList pentru a efectua această operațiune. Pentru a elimina un element dintr-o matrice, mai întâi convertim matricea într-un ArrayList și apoi folosim metoda „remove” din ArrayList pentru a elimina elementul de la un anumit index.
Odată eliminat, convertim ArrayList înapoi la matrice.
Următoarea implementare arată eliminarea elementului dintr-o matrice folosind 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)); } }
Ieșire:
Programul de mai sus produce ieșire pentru două condiții. În primul rând, un indice inexistent (10) este trecut, adică dincolo de dimensiunea matricei curente. Programul afișează un mesaj adecvat și nu șterge niciun element.
În al doilea caz, se trece un index = 2. De această dată elementul din poziția 2 este șters și matricea rezultată este trecută.
c ++ eroare de referință nedefinită
Utilizarea System.arraycopy ()
Această metodă este similară cu prima metodă, cu excepția faptului că folosim metoda „arrayCopy” pentru copierea elementelor matricei originale în noua matrice.
În primul rând, copiem elementele matricei originale de la 0 la index în noua matrice. Apoi, copiem elementele din index + 1 până la lungime în noua matrice. Astfel, în timpul copierii, omitem elementul la indexul specificat și generăm o nouă matrice.
Această nouă matrice indică matricea rezultată care se obține după ștergerea unui element la indexul specificat.
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)); } }
Ieșire:
întrebări frecvente
Q # 1) Cum se elimină un element dintr-o matrice?
Răspuns: Java nu oferă o metodă directă pentru a elimina un element din matrice. Dar având în vedere un index la care elementul urmează să fie șters, putem folosi ArrayList pentru a elimina elementul de la indexul specificat.
Pentru aceasta, mai întâi, convertim matricea în ArrayList și folosind metoda de eliminare eliminăm elementul. Odată ce ați terminat, convertim ArrayList înapoi la matrice. Există, de asemenea, alte câteva soluții pe care le putem folosi în acest scop.
Q # 2) Ce face ArrayList remove?
Răspuns: Metoda de eliminare ArrayList elimină elementul din ArrayList la un index dat care este furnizat ca argument.
cum se deschide fișierul .eps
Î. 3) Cum eliminați duplicatele dintr-o matrice în Java?
Răspuns: Elementele duplicate dintr-o matrice pot fi eliminate prin utilizarea unei matrice temporare care va număra elementele unul câte unul și va pune doar elementele unice în matricea temporară. O matrice trebuie să fie sortată pentru a elimina duplicatele.
Q # 4) Filtrul returnează o nouă matrice?
Răspuns: Da. Filtrul returnează noua matrice fără a afecta matricea originală.
Q # 5) Cum funcționează R să lucreze în Java?
Răspuns: Metoda de eliminare a ArrayList din Java elimină elementul la indexul specificat. Și în lista legată metoda de eliminare elimină nodul în poziția dată.
Concluzie
În acest tutorial, am văzut diferitele modalități sau soluții prin care putem elimina elementul dintr-o matrice la un index dat.
În subiectele noastre ulterioare, vom discuta câteva operații efectuate pe matrice în Java.
=> Consultați aici Ghidul intensiv de instruire Java
Lectură recomandată
- Tutorial Java Lungime matrice cu exemple de cod
- Java Array - Cum se imprimă elemente ale unui array în Java?
- Cum să sortați o matrice în Java - Tutorial cu exemple
- Java Array - Declarați, creați și inițializați o matrice în Java
- Java Generic Array - Cum se pot simula matrici generice în Java?
- Inversați o matrice în Java - 3 metode cu exemple
- Tutorial de reflecție Java cu exemple
- Cum să treceți / returnați o matrice în Java