remove delete an element from an array java
Naučite se različnih metod za brisanje ali odstranjevanje elementa iz polja v Javi, na primer Uporaba drugega polja, Uporaba Java 8 Streams, Uporaba ArrayList:
Java-nizi ne zagotavljajo metode neposrednega odstranjevanja elementa. Pravzaprav smo že razpravljali, da so nizi v Javi statični, zato se velikost nizov ne more spremeniti, ko se ustvarijo primerki. Tako ne moremo izbrisati elementa in zmanjšati velikosti polja.
Torej, če želimo element izbrisati ali odstraniti iz polja, moramo uporabiti različne metode, ki so običajno rešitve.
=> Oglejte si celotno serijo vadnic za Java za začetnike
Kaj se boste naučili:
Odstrani / izbriši element iz polja v Javi
V tej vadnici bomo razpravljali o različnih metodah za brisanje elementa iz polja.
Vključuje:
- Uporaba drugega polja
- Uporaba tokov Java 8
- Uporaba ArrayList
- Uporaba System.arraycopy ()
Uporaba drugega polja
To je tradicionalna in nekoliko neučinkovita metoda brisanja elementa matrike. Tu definiramo novo matriko z velikostjo, manjšo od 1, od prvotne matrike. Nato kopiramo elemente iz prvotnega polja v novo polje. Toda med tem kopiranjem element preskočimo pri določenem indeksu.
Na ta način v novo polje kopiramo vse elemente, razen elementa, ki ga želimo izbrisati, kar pomeni, da je element izbrisan.
To operacijo lahko predstavimo slikovno, kot je prikazano spodaj.
Uvedimo to metodo v 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 Izhod:
Uporaba Java 8 Streams
Potoki so nov dodatek k Javi od različice 8 naprej. S pomočjo tokov Java8 lahko element izbrišemo iz polja. Da bi to naredili, se matrika najprej pretvori v tok. Nato se element z navedenim indeksom z metodo filtra tokov izbriše.
Ko je element z uporabo metod 'map' in 'toArray' izbrisan, se tok pretvori nazaj v matriko.
Izvedba odstranjevanja elementa iz polja z uporabo toka je prikazana spodaj.
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)); } }
Izhod:
kako predvajati datoteke .jar
Uporaba ArrayList
Za izvedbo te operacije lahko uporabimo ArrayList. Če želimo element odstraniti iz polja, ga najprej pretvorimo v ArrayList, nato pa uporabimo metodo 'remove' v ArrayList, da odstranimo element z določenim indeksom.
Ko ga odstranimo, ArrayList pretvorimo nazaj v polje.
Naslednja izvedba prikazuje odstranjevanje elementa iz polja z uporabo 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)); } }
Izhod:
Zgornji program daje rezultate za dva pogoja. Najprej se posreduje neobstoječi indeks (10), torej nad trenutno velikostjo matrike. Program prikaže ustrezno sporočilo in ne izbriše nobenega elementa.
V drugem primeru se posreduje indeks = 2. Tokrat se element na položaju 2 izbriše in dobljeno polje se posreduje.
Uporaba System.arraycopy ()
Ta metoda je podobna prvi metodi, le da za kopiranje elementov prvotnega polja v novo polje uporabljamo metodo 'arrayCopy'.
Najprej kopiramo elemente prvotnega polja od 0 do indeksa v novo polje. Nato kopiramo elemente iz indeksa + 1 do dolžine v novo matriko. Tako med kopiranjem preskočimo element pri določenem indeksu in ustvarimo novo matriko.
Ta nova matrika označuje nastalo polje, ki je pridobljeno po brisanju elementa v podanem indeksu.
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)); } }
Izhod:
Pogosto zastavljena vprašanja
V # 1) Kako odstraniti en element iz polja?
Odgovor: Java ne zagotavlja neposredne metode za odstranitev elementa iz polja. Toda glede na indeks, pri katerem naj bi bil element izbrisan, lahko z ArrayList odstranimo element na določenem indeksu.
Za to najprej pretvorimo polje v ArrayList in z metodo odstranitve odstranimo element. Ko je to storjeno, pretvorimo ArrayList nazaj v matriko. V ta namen lahko uporabimo tudi več drugih rešitev.
V # 2) Kaj naredi odstranitev ArrayList?
Odgovor: Metoda odstranjevanja ArrayList odstrani element v ArrayList pri določenem indeksu, ki je naveden kot argument.
c ++ char v niz
V # 3) Kako odstranim dvojnike iz polja v Javi?
Odgovor: Podvojene elemente iz matrike je mogoče odstraniti z uporabo začasne matrike, ki bo elemente štela enega za drugim in edinstvene elemente dodala le v začasno polje. Za odstranitev dvojnikov je treba sortirati matriko.
V # 4) Ali Filter vrne novo matriko?
Odgovor: Da. Filter vrne novo matriko, ne da bi vplival na prvotno matriko.
V # 5) Kako R deluje v Java?
Odgovor: Metoda odstranitve ArrayList v Javi odstrani element v določenem indeksu. Tudi na povezanem seznamu metoda odstranjevanja odstrani vozlišče na danem položaju.
Zaključek
V tej vadnici smo videli različne načine ali rešitve, s katerimi lahko element odstranimo iz polja z določenim indeksom.
V naslednjih temah bomo obravnavali še nekaj operacij, izvedenih nad nizi v Javi.
=> Tukaj si oglejte Vodič za intenzivno učenje Java
Priporočeno branje
- Vadnica za dolžino polja Java s primeri kode
- Java Array - Kako natisniti elemente polja v Javi?
- Kako razvrstiti polje v Javi - Vadnica s primeri
- Java Array - prijavite, ustvarite in inicializirajte polje v Javi
- Java Generic Array - Kako simulirati generična polja v Javi?
- Obrni matriko v Javi - 3 metode s primeri
- Vadnica za refleksijo Java s primeri
- Kako prenesti / vrniti polje v Javi