remove delete an element from an array java
Naučite razne metode za brisanje ili uklanjanje elementa iz niza u Javi, na primjer Korištenje drugog polja, Korištenje Java 8 Streamova, Korištenje ArrayList:
Java nizovi ne pružaju metodu izravnog uklanjanja za uklanjanje elementa. U stvari, već smo razgovarali o tome da su nizovi u Javi statični pa se veličina nizova ne može promijeniti nakon što se instanciraju. Stoga ne možemo izbrisati element i smanjiti veličinu polja.
Dakle, ako želimo izbrisati ili ukloniti element iz niza, trebamo upotrijebiti različite metode koje su obično zaobilazne.
=> Pogledajte cjelovitu seriju lekcija za Java za početnike
Što ćete naučiti:
Ukloni / izbriši element iz niza u Javi
U ovom uputstvu razgovarat ćemo o raznim metodama brisanja elementa iz niza.
Uključuje:
- Korištenje drugog niza
- Korištenje Java 8 streamova
- Korištenje ArrayList
- Korištenje System.arraycopy ()
Korištenje drugog niza
Ovo je tradicionalna i pomalo neučinkovita metoda brisanja elementa niza. Ovdje definiramo novi niz čija je veličina manja od 1 u odnosu na izvorni niz. Zatim kopiramo elemente iz izvornog niza u novi niz. No dok radimo ovo kopiranje, preskačemo element na navedenom indeksu.
Na taj način kopiramo sve elemente, osim elementa koji se želi izbrisati, u novi niz koji pokazuje da je element izbrisan.
Ovu operaciju možemo prikazati slikovito kako je prikazano u nastavku.
Primijenimo ovu metodu u Java program.
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 Izlaz:
Korištenje Java 8 Streamova
Streamovi su novi dodatak Javi od verzije 8 nadalje. Pomoću Java8 streamova možemo izbrisati element iz niza. Da bi se to učinilo, prvo se niz pretvara u tok. Tada se element navedenog indeksa briše metodom filtriranja tokova.
razlika između plana i strategije ispitivanja
Nakon što se element izbriše, pomoću metoda 'map' i 'toArray', tok se pretvara natrag u niz.
Implementacija uklanjanja elementa iz niza pomoću toka prikazana je u nastavku.
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)); } }
Izlaz:
Korištenje ArrayList
Za izvršenje ove operacije možemo koristiti ArrayList. Da bismo uklonili element iz niza, prvo pretvaramo niz u ArrayList, a zatim metodom ‘remove’ iz ArrayList uklanjamo element s određenim indeksom.
Jednom uklonjeni, pretvaramo ArrayList natrag u niz.
Sljedeća implementacija prikazuje uklanjanje elementa iz niza pomoću 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)); } }
Izlaz:
Gornji program daje izlaz za dva uvjeta. Prvo se prenosi nepostojeći indeks (10), tj. Izvan trenutne veličine polja. Program prikazuje odgovarajuću poruku i ne briše nijedan element.
U drugom se slučaju prenosi indeks = 2. Ovaj put se element na položaju 2 briše i rezultirajući niz se predaje.
Korištenje System.arraycopy ()
Ova je metoda slična prvoj metodi, osim što koristimo metodu 'arrayCopy' za kopiranje elemenata izvornog niza u novi niz.
Prvo kopiramo elemente izvornog niza od 0 do indeksa u novi niz. Dalje, kopiramo elemente od indeksa + 1 do dužine u novi niz. Tako tijekom kopiranja preskačemo element na navedenom indeksu i generiramo novi niz.
Ovaj novi niz ukazuje na rezultatski niz koji se dobiva nakon brisanja elementa u navedenom 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)); } }
Izlaz:
Često postavljana pitanja
P # 1) Kako ukloniti jedan element iz niza?
Odgovor: Java ne nudi izravnu metodu za uklanjanje elementa iz niza. Ali s obzirom na indeks pri kojem će se element izbrisati, možemo koristiti ArrayList za uklanjanje elementa na navedenom indeksu.
Za to prvo pretvaramo niz u ArrayList i pomoću metode remove uklanjamo element. Kad je to gotovo, pretvaramo ArrayList natrag u niz. Postoji i nekoliko drugih rješenja koja možemo upotrijebiti u tu svrhu.
P # 2) Što radi ArrayList remove?
Odgovor: Metoda uklanjanja ArrayList uklanja element u ArrayListu na zadanom indeksu koji je naveden kao argument.
razlika između jave i c ++
P # 3) Kako uklanjati duplikate iz niza u Javi?
Odgovor: Dvostruki elementi iz niza mogu se ukloniti upotrebom privremenog niza koji će brojati elemente jedan po jedan, a jedinstvene elemente stavljati samo u privremeni niz. Za uklanjanje duplikata potrebno je sortirati niz.
P # 4) Vraća li Filter novi niz?
Odgovor: Da. Filter vraća novi niz bez utjecaja na izvorni niz.
P # 5) Kako R emove raditi u Javi?
Odgovor: Metoda uklanjanja ArrayList u Javi uklanja element s navedenim indeksom. I na povezanom popisu metoda uklanjanja uklanja čvor na zadanom položaju.
Zaključak
U ovom smo tutorijalu vidjeli razne načine ili zaobilazne načine pomoću kojih možemo ukloniti element iz niza na zadanom indeksu.
U sljedećim temama razgovarat ćemo o još nekim operacijama izvedenim na nizovima u Javi.
=> Ovdje pogledajte Intenzivni vodič za Java obuku
Preporučena literatura
- Vodič za dužinu Java polja s primjerima koda
- Java niz - Kako ispisati elemente niza u Javi?
- Kako sortirati niz u Javi - Vodič sa primjerima
- Java Array - Deklariranje, stvaranje i inicijalizacija niza u Javi
- Java generički niz - kako simulirati generičke nizove u Javi?
- Obrnuti niz u Javi - 3 metode s primjerima
- Java Vodič za refleksiju s primjerima
- Kako proslijediti / vratiti niz u Javi