remove delete an element from an array java
Naučte sa rôzne metódy na odstránenie alebo odstránenie prvku z poľa v Jave, ako napríklad použitie iného poľa, použitie prúdov Java 8, použitie ArrayList:
Polia Java neposkytujú metódu priameho odstránenia na odstránenie prvku. V skutočnosti sme už diskutovali o tom, že polia v Jave sú statické, takže veľkosť polí sa nemôže meniť, akonáhle sú vytvorené. Nemôžeme teda vymazať prvok a zmenšiť veľkosť poľa.
Ak teda chceme odstrániť alebo odstrániť prvok z poľa, musíme použiť rôzne metódy, ktoré sú zvyčajne riešením.
=> Prečítajte si celú sériu výučbových programov Java pre začiatočníkov
Čo sa dozviete:
Odstrániť / Odstrániť prvok z poľa v Jave
V tomto výučbe sa budeme zaoberať rôznymi metódami odstránenia prvku z poľa.
Obsahuje:
- Pomocou iného poľa
- Používanie streamov Java 8
- Pomocou ArrayList
- Používanie System.arraycopy ()
Použitie iného poľa
Toto je tradičná a trochu neefektívna metóda odstránenia prvku poľa. Tu definujeme nové pole s veľkosťou menšou ako 1 k pôvodnému poľu. Potom skopírujeme prvky z pôvodného poľa do nového poľa. Ale pri tomto kopírovaní preskočíme prvok v zadanom indexe.
Týmto spôsobom skopírujeme všetky prvky okrem prvku, ktorý sa má vymazať, do nového poľa, čo naznačuje, že prvok je odstránený.
Túto operáciu môžeme znázorniť obrazne, ako je uvedené nižšie.
Implementujme túto metódu v programe 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 Výkon:

Používanie streamov Java 8
Streamy sú novým prírastkom do Javy od verzie 8. Pomocou prúdov Java8 môžeme odstrániť prvok z poľa. Za týmto účelom sa pole najskôr prevedie na prúd. Potom sa prvok v zadanom indexe odstráni pomocou filtračnej metódy prúdov.
Po odstránení prvku pomocou metód „map“ a „toArray“ sa prúd prevedie späť do poľa.
Implementácia odstránenia prvku z poľa pomocou toku je uvedená nižšie.
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)); } }
Výkon:

Pomocou ArrayList
Na vykonanie tejto operácie môžeme použiť ArrayList. Aby sme odstránili prvok z poľa, najskôr konvertujeme pole na ArrayList a potom na odstránenie prvku v konkrétnom indexe použijeme metódu „remove“ z ArrayList.
ručné testovanie rozhovorov, otázok a odpovedí pdf
Po odstránení konvertujeme ArrayList späť na pole.
Nasledujúca implementácia ukazuje odstránenie prvku z poľa pomocou 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)); } }
Výkon:

Vyššie uvedený program produkuje výstup pre dve podmienky. Najskôr sa odovzdá neexistujúci index (10), t. J. Nad aktuálnu veľkosť poľa. Program zobrazí príslušnú správu a neodstráni žiadny prvok.
V druhom prípade sa odovzdá index = 2. Tentokrát je prvok na pozícii 2 vymazaný a výsledné pole je odovzdané.
Používanie System.arraycopy ()
Táto metóda je podobná prvej metóde, až na to, že na kopírovanie prvkov pôvodného poľa do nového poľa používame metódu ‘arrayCopy’.
Najskôr skopírujeme prvky pôvodného poľa z 0 do indexu do nového poľa. Ďalej skopírujeme prvky z indexu + 1 do dĺžky do nového poľa. Pri kopírovaní teda preskočíme prvok v zadanom indexe a vygenerujeme nové pole.
Toto nové pole označuje výsledné pole, ktoré sa získa po odstránení prvku v zadanom indexe.
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)); } }
Výkon:

často kladené otázky
Otázka č. 1) Ako odstrániť jeden prvok z poľa?
Odpoveď: Java neposkytuje priamu metódu na odstránenie prvku z poľa. Ale vzhľadom na index, z ktorého sa má prvok vymazať, môžeme použiť ArrayList na odstránenie prvku v zadanom indexe.
Za týmto účelom najskôr prevedieme pole na ArrayList a pomocou metódy remove odstránime prvok. Keď je hotovo, konvertujeme ArrayList späť na pole. Existuje tiež niekoľko ďalších riešení, ktoré môžeme na tento účel použiť.
Otázka 2) Čo robí ArrayList remove?
Odpoveď: Metóda ArrayList remove odstráni prvok v ArrayList pri danom indexe, ktorý je poskytnutý ako argument.
rozdiel medzi Java a C ++
Otázka č. 3) Ako odstránite duplikáty z poľa v Jave?
Odpoveď: Duplicitné prvky z poľa je možné odstrániť pomocou dočasného poľa, ktoré bude počítať prvky jeden po druhom a do dočasného poľa vloží iba jedinečné prvky. Ak chcete odstrániť duplikáty, je potrebné zoradiť pole.
Otázka č. 4) Vráti filter nové pole?
Odpoveď: Áno. Filter vráti nové pole bez ovplyvnenia pôvodného poľa.
Otázka č. 5) Ako funguje R. emove work in Java?
Odpoveď: Metóda remove ArrayList v Jave odstráni prvok v zadanom indexe. V prepojenom zozname tiež metóda odstránenia odstráni uzol na danej pozícii.
Záver
V tomto tutoriáli sme videli rôzne spôsoby alebo riešenia, pomocou ktorých môžeme odstrániť prvok z poľa pri danom indexe.
V nasledujúcich témach sa budeme venovať niektorým ďalším operáciám vykonaným na poliach v Jave.
=> Tu si pozrite sprievodcu intenzívnym školením v jazyku Java
Odporúčané čítanie
- Výukový program Java Array Length s príkladmi kódu
- Java Array - Ako tlačiť prvky poľa v Jave?
- Ako zoradiť pole v Jave - návod s príkladmi
- Java Array - Deklarovať, vytvoriť a inicializovať pole v Jave
- Generické pole Java - Ako simulovať generické polia v prostredí Java?
- Obrátiť pole v prostredí Java - 3 metódy s príkladmi
- Výukový program Java Reflection s príkladmi
- Ako odovzdať / vrátiť pole v Jave