remove delete an element from an array java
Lær forskellige metoder til at slette eller fjerne et element fra en matrix i Java, f.eks. Ved hjælp af et andet array, brug af Java 8 Streams, ved hjælp af ArrayList:
Java-arrays giver ikke en direkte fjernelsesmetode til at fjerne et element. Faktisk har vi allerede diskuteret, at arrays i Java er statiske, så størrelsen af arrays ikke kan ændres, når de er instantieret. Således kan vi ikke slette et element og reducere arraystørrelsen.
Så hvis vi vil slette eller fjerne et element fra arrayet, skal vi anvende forskellige metoder, der normalt er løsninger.
=> Se den fulde Java-træningsvejledningsserie til begyndere
Hvad du vil lære:
Fjern / slet et element fra en matrix i Java
I denne vejledning vil vi diskutere de forskellige metoder til at slette et element fra en matrix.
Det omfatter:
- Brug af en anden matrix
- Brug af Java 8-streams
- Brug af ArrayList
- Brug af System.arraycopy ()
Brug af en anden matrix
Dette er den traditionelle og noget ineffektive metode til at slette et array-element. Her definerer vi en ny matrix med størrelse mindre end 1 til den oprindelige matrix. Derefter kopierer vi elementerne fra det originale array til det nye array. Men mens vi udfører denne kopiering, springer vi over elementet i det angivne indeks.
På denne måde kopierer vi alle elementerne undtagen det element, der skal slettes, til det nye array, hvilket indikerer, at elementet er slettet.
Vi kan repræsentere denne operation billedligt som vist nedenfor.
Lad os implementere denne metode i et 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 Produktion:

Brug af Java 8 Streams
Streams er en ny tilføjelse til Java fra version 8 og fremefter. Ved hjælp af Java8-streams kan vi slette et element fra et array. For at gøre dette konverteres arrayet først til en stream. Derefter slettes elementet ved det angivne indeks ved hjælp af filtermetoden for streams.
Når elementet er slettet ved hjælp af metoderne 'map' og 'toArray', konverteres strømmen tilbage til arrayet.
Implementeringen af at fjerne et element fra et array ved hjælp af stream er vist nedenfor.
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)); } }
Produktion:

Brug af ArrayList
Vi kan bruge en ArrayList til at udføre denne handling. For at fjerne et element fra et array konverterer vi først arrayet til en ArrayList og bruger derefter 'remove' -metoden i ArrayList til at fjerne elementet ved et bestemt indeks.
bedste måde at downloade lyd fra youtube
Når vi er fjernet, konverterer vi ArrayList tilbage til arrayet.
Den følgende implementering viser fjernelse af elementet fra en matrix ved hjælp af 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)); } }
Produktion:

Ovenstående program producerer output under to forhold. Først sendes et ikke-eksisterende indeks (10), dvs. ud over den aktuelle arraystørrelse. Programmet viser en passende besked og sletter ikke noget element.
I det andet tilfælde passeres et indeks = 2. Denne gang slettes elementet i position 2, og det resulterende array sendes.
Brug af System.arraycopy ()
Denne metode svarer til den første metode, bortset fra at vi bruger 'arrayCopy' -metoden til at kopiere elementerne i den originale array til den nye array.
Først kopierer vi elementerne i det originale array fra 0 til indeks i det nye array. Derefter kopierer vi elementerne fra indeks + 1 indtil længde i det nye array. Således under kopiering springer vi over elementet ved det angivne indeks og genererer et nyt array.
Denne nye matrix angiver den resulterende matrix, der opnås efter sletning af et element i det angivne indeks.
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)); } }
Produktion:

Ofte stillede spørgsmål
Spørgsmål nr. 1) Hvordan fjernes et element fra en matrix?
Svar: Java giver ikke en direkte metode til at fjerne et element fra arrayet. Men givet et indeks, hvor elementet skal slettes, kan vi bruge ArrayList til at fjerne elementet ved det angivne indeks.
Til dette konverterer vi først arrayet til ArrayList, og ved hjælp af metoden remove fjerner vi elementet. Når det er gjort, konverterer vi ArrayList tilbage til arrayet. Der er også flere andre løsninger, som vi kan anvende til dette formål.
Spørgsmål nr. 2) Hvad gør ArrayList fjern?
Svar: ArrayList remove-metode fjerner elementet i ArrayList ved et givet indeks, der er angivet som et argument.
hvordan man åbner .eps filen
Spørgsmål nr. 3) Hvordan fjerner du duplikater fra en matrix i Java?
Svar: Duplikatelementer fra en matrix kan fjernes ved hjælp af en midlertidig matrix, der tæller elementerne en efter en og kun placerer de unikke elementer i den midlertidige matrix. Et array skal sorteres for at fjerne duplikaterne.
Q # 4) Returnerer Filter et nyt array?
Svar: Ja. Filter returnerer det nye array uden at påvirke det originale array.
Q # 5) Hvordan fungerer R emove arbejde i Java?
Svar: Fjernelsesmetoden til ArrayList i Java fjerner elementet ved det angivne indeks. Også på den sammenkædede liste fjerner metoden fjern noden på den givne position.
Konklusion
I denne vejledning har vi set de forskellige måder eller løsninger, hvormed vi kan fjerne elementet fra en matrix ved et givet indeks.
I vores efterfølgende emner vil vi diskutere flere operationer udført på arrays i Java.
=> Tjek den intensive Java-træningsvejledning her
Anbefalet læsning
- Java Array Length Tutorial med kodeeksempler
- Java Array - Hvordan udskrives elementer af en matrix i Java?
- Sådan sorteres en matrix i Java - vejledning med eksempler
- Java Array - Erklære, oprette og initialisere en matrix i Java
- Java Generic Array - Sådan simuleres generiske arrays i Java?
- Vend en matrix i Java - 3 metoder med eksempler
- Java Reflection Tutorial med eksempler
- Sådan videregives / returneres en matrix i Java