remove delete an element from an array java
Lær forskjellige metoder for å slette eller fjerne et element fra en matrise i Java, for eksempel å bruke en annen matrise, bruke Java 8 Streams, bruke ArrayList:
Java-arrays gir ikke en metode for direkte fjerning for å fjerne et element. Faktisk har vi allerede diskutert at matriser i Java er statiske, slik at størrelsen på matrisen ikke kan endres når de er instantiert. Dermed kan vi ikke slette et element og redusere matrisestørrelsen.
Så hvis vi vil slette eller fjerne et element fra matrisen, må vi bruke forskjellige metoder som vanligvis er løsninger.
=> Se hele opplæringsserien for Java-opplæring for nybegynnere
Hva du vil lære:
Fjern / slett et element fra en matrise i Java
I denne opplæringen vil vi diskutere de forskjellige metodene for å slette et element fra en matrise.
Det inkluderer:
- Bruke en annen matrise
- Bruke Java 8-strømmer
- Bruke ArrayList
- Bruke System.arraycopy ()
Bruke en annen matrise
Dette er den tradisjonelle og noe ineffektive metoden for å slette et array-element. Her definerer vi en ny matrise med størrelse mindre enn 1 til den opprinnelige matrisen. Deretter kopierer vi elementene fra den opprinnelige matrisen til den nye matrisen. Men mens vi gjør denne kopieringen, hopper vi over elementet i den angitte indeksen.
På denne måten kopierer vi alle elementene bortsett fra elementet som skal slettes til den nye matrisen, noe som indikerer at elementet er slettet.
Vi kan representere denne operasjonen billedlig som vist nedenfor.
La oss implementere denne metoden 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 Produksjon:

Bruke Java 8 Streams
Strømmer er et nytt tillegg til Java fra versjon 8 og utover. Ved hjelp av Java8-strømmer kan vi slette et element fra en matrise. For å gjøre dette konverteres matrisen først til en strøm. Deretter slettes elementet ved den angitte indeksen ved hjelp av filtermetoden for strømmer.
Når elementet er slettet, ved hjelp av 'kart' og 'toArray' -metodene, konverteres strømmen tilbake til matrisen.
Implementeringen av å fjerne et element fra en matrise ved hjelp av strøm 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)); } }
Produksjon:

Bruke ArrayList
Vi kan bruke en ArrayList til å utføre denne operasjonen. For å fjerne et element fra en matrise konverterer vi først matrisen til en ArrayList, og deretter bruker vi 'remove' -metoden til ArrayList for å fjerne elementet ved en bestemt indeks.
Når vi er fjernet, konverterer vi ArrayList tilbake til matrisen.
Følgende implementering viser fjerning av elementet fra en matrise ved hjelp av 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)); } }
Produksjon:

Ovennevnte program gir produksjon for to forhold. Først sendes en ikke-eksisterende indeks (10), dvs. utover gjeldende matrisestørrelse. Programmet viser en passende melding og sletter ikke noe element.
I det andre tilfellet passeres en indeks = 2. Denne gangen slettes elementet i posisjon 2, og den resulterende matrisen sendes.
Bruke System.arraycopy ()
Denne metoden ligner på den første metoden bortsett fra at vi bruker 'arrayCopy' -metoden for å kopiere elementene i den opprinnelige matrisen til den nye matrisen.
hva er den beste c ++ kompilatoren
Først kopierer vi elementene i den opprinnelige matrisen fra 0 til indeksen i den nye matrisen. Deretter kopierer vi elementene fra indeks + 1 til lengde inn i den nye matrisen. Dermed hopper vi elementet ved den angitte indeksen mens vi kopierer og genererer en ny matrise.
Denne nye matrisen indikerer den resulterende matrisen som oppnås etter å ha slettet et element i den angitte indeksen.
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)); } }
Produksjon:

ofte stilte spørsmål
Q # 1) Hvordan fjerne ett element fra en matrise?
Svar: Java gir ikke en direkte metode for å fjerne et element fra matrisen. Men gitt en indeks der elementet skal slettes, kan vi bruke ArrayList til å fjerne elementet ved den angitte indeksen.
For dette konverterer vi først matrisen til ArrayList, og ved å fjerne metoden fjerner vi elementet. Når det er gjort, konverterer vi ArrayList tilbake til matrisen. Det er også flere andre løsninger som vi kan bruke til dette formålet.
Spørsmål 2) Hva gjør ArrayList remove?
Svar: ArrayList remove-metoden fjerner elementet i ArrayList ved en gitt indeks som er gitt som et argument.
hvordan du åpner .eps-filen
Spørsmål 3) Hvordan fjerner du duplikater fra en matrise i Java?
Svar: Dupliserte elementer fra en matrise kan fjernes ved å bruke en midlertidig matrise som teller elementene en etter en og bare plasserer de unike elementene i den midlertidige matrisen. En matrise må sorteres for å fjerne duplikatene.
Q # 4) Returnerer Filter en ny matrise?
Svar: Ja. Filter returnerer den nye matrisen uten å påvirke den opprinnelige matrisen.
Q # 5) Hvordan fungerer R emove arbeid i Java?
Svar: Fjernmetoden til ArrayList i Java fjerner elementet ved den angitte indeksen. Også i den koblede listen fjerner metoden noden på den gitte posisjonen.
Konklusjon
I denne opplæringen har vi sett på forskjellige måter eller løsninger som vi kan fjerne elementet fra en matrise ved en gitt indeks.
I de påfølgende emnene vil vi diskutere flere operasjoner utført på arrays i Java.
=> Ta en titt på den intensive Java-opplæringsguiden her
Anbefalt lesing
- Java Array Length Tutorial With Code Eksempler
- Java Array - Hvordan skrive ut elementer av en array i Java?
- Hvordan sortere en matrise i Java - Veiledning med eksempler
- Java Array - Erklære, opprette og initialisere en array i Java
- Java Generic Array - Hvordan simulere generiske matriser i Java?
- Omvend en matrise i Java - 3 metoder med eksempler
- Java Reflection Tutorial med eksempler
- Hvordan sende / returnere en matrise i Java