remove delete an element from an array java
Lär dig olika metoder för att ta bort eller ta bort ett element från en array i Java, till exempel att använda en annan array, använda Java 8 Streams, använda ArrayList:
Java-matriser ger ingen metod för direkt borttagning för att ta bort ett element. Faktum är att vi redan har diskuterat att matriser i Java är statiska så att storleken på matriserna inte kan förändras när de är insti-cierade. Således kan vi inte ta bort ett element och minska gruppens storlek.
Så om vi vill ta bort eller ta bort ett element från matrisen måste vi använda olika metoder som vanligtvis är lösningar.
=> Se hela Java-utbildningsserien för nybörjare
Vad du kommer att lära dig:
Ta bort / ta bort ett element från en array i Java
I denna handledning kommer vi att diskutera de olika metoderna för att ta bort ett element från en matris.
Det inkluderar:
- Använda en annan matris
- Använda Java 8-strömmar
- Använda ArrayList
- Använda System.arraycopy ()
Använda en annan matris
Detta är den traditionella och något ineffektiva metoden för att radera ett arrayelement. Här definierar vi en ny matris med storlek mindre än 1 till den ursprungliga matrisen. Sedan kopierar vi elementen från den ursprungliga matrisen till den nya matrisen. Men medan vi gör den här kopieringen hoppar vi över elementet i det angivna indexet.
På detta sätt kopierar vi alla element utom elementet som ska raderas till den nya matrisen, vilket indikerar att elementet raderas.
Vi kan representera den här åtgärden bildligt som visas nedan.
Låt oss implementera den här metoden i ett 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:
c ++ konvertera char till int
Använda Java 8 Streams
Strömmar är ett nytt tillskott till Java från version 8 och framåt. Med hjälp av Java8-strömmar kan vi ta bort ett element från en matris. För att göra detta konverteras matrisen först till en ström. Sedan raderas elementet vid det angivna indexet med hjälp av filtermetoden för strömmar.
När elementet har raderats med hjälp av metoderna ”map” och “toArray” konverteras strömmen tillbaka till arrayen.
Implementeringen av att ta bort ett element från en array med ström visas nedan.
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:
Använda ArrayList
Vi kan använda en ArrayList för att utföra den här åtgärden. För att ta bort ett element från en array konverterar vi först arrayen till en ArrayList och använder sedan 'remove' -metoden i ArrayList för att ta bort elementet i ett visst index.
När vi väl tagit bort konverterar vi ArrayList tillbaka till arrayen.
Följande implementering visar att man tar bort elementet från en array med 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:
Ovanstående program ger utdata för två förhållanden. Först skickas ett icke-existerande index (10), dvs. bortom den aktuella matrisstorleken. Programmet visar ett lämpligt meddelande och tar inte bort något element.
I det andra fallet passeras ett index = 2. Denna gång raderas elementet i position 2 och den resulterande matrisen skickas.
Använda System.arraycopy ()
Den här metoden liknar den första metoden förutom att vi använder metoden 'arrayCopy' för att kopiera elementen i den ursprungliga arrayen till den nya arrayen.
Först kopierar vi elementen i den ursprungliga matrisen från 0 till index till den nya matrisen. Därefter kopierar vi elementen från index + 1 till längd till den nya matrisen. Således under kopiering hoppar vi över elementet vid det angivna indexet och genererar en ny matris.
Den här nya matrisen indikerar den resulterande matrisen som erhålls efter att ett element har tagits bort i det angivna indexet.
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:
Vanliga frågor
F # 1) Hur tar man bort ett element från en matris?
Svar: Java tillhandahåller inte en direkt metod för att ta bort ett element från matrisen. Men med ett index där elementet ska raderas kan vi använda ArrayList för att ta bort elementet vid det angivna indexet.
För detta konverterar vi först arrayen till ArrayList och med borttagningsmetoden tar vi bort elementet. När det är klart konverterar vi ArrayList tillbaka till arrayen. Det finns också flera andra lösningar som vi kan använda för detta ändamål.
F # 2) Vad gör ArrayList remove?
Svar: Metoden ArrayList remove tar bort elementet i ArrayList vid ett visst index som tillhandahålls som ett argument.
hur man öppnar .eps-filen
F # 3) Hur tar du bort dubbletter från en matris i Java?
Svar: Duplikatelement från en matris kan tas bort med hjälp av en tillfällig matris som räknar elementen en efter en och bara placerar de unika elementen i den tillfälliga matrisen. En matris måste sorteras för att ta bort dubbletterna.
F # 4) Returnerar Filter en ny matris?
Svar: Ja. Filter returnerar den nya matrisen utan att påverka den ursprungliga matrisen.
F # 5) Hur fungerar R emove arbete i Java?
Svar: Ta bort metoden för ArrayList i Java tar bort elementet vid det angivna indexet. I den länkade listan tas också bort metoden bort noden vid den angivna positionen.
Slutsats
I denna handledning har vi sett olika sätt eller lösningar som vi kan ta bort elementet från en matris med ett visst index.
I våra efterföljande ämnen kommer vi att diskutera några fler operationer utförda på arrays i Java.
=> Kolla in den intensiva Java-träningsguiden här
Rekommenderad läsning
- Java Array Length Tutorial With Code Exempel
- Java Array - Hur man skriver ut delar av en array i Java?
- Hur man sorterar en matris i Java - Handledning med exempel
- Java Array - Förklara, skapa och initialisera en array i Java
- Java Generic Array - Hur man simulerar generiska arrays i Java?
- Omvänd en matris i Java - 3 metoder med exempel
- Java Reflection Tutorial med exempel
- Hur man skickar / returnerar en matris i Java