Rimuovi elemento dall'array e quindi sposta altri elementi in Java
-
Usa il cicli
for
per rimuovere l’elemento dall’array e Shift in Java -
Usa
System.arraycopy()
per rimuovere l’elemento dall’array e Shift in Java -
Usa
ArrayList
per rimuovere l’elemento dall’array e Shift in Java
L’array in Java è una raccolta a dimensione fissa di elementi dello stesso tipo. Java fornisce vari metodi per eseguire diverse manipolazioni relative a un array.
Usa il cicli for
per rimuovere l’elemento dall’array e Shift in Java
In questo approccio, utilizziamo più cicli for
per eseguire il bucle su tutti gli elementi di arr
e controllare l’elemento che vogliamo rimuovere. Quando viene trovato l’elemento da eliminare, creiamo un nuovo Array newArr
con la dimensione arr.length-1
. Eseguiamo un altro bucle per copiare tutti gli elementi prima dell’indice in cui si trova elementToBeDeleted
.
Successivamente, eseguiamo un altro bucle per copiare gli elementi rimanenti dell’array dopo l’elementToBeDeleted
, lasciando quello che dobbiamo eliminare.
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int[] arr = {3, 1, 6, 5, 2, 8, 4};
int[] newArr = null;
int elementToBeDeleted = 5;
System.out.println("Original Array is: " + Arrays.toString(arr));
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] == elementToBeDeleted) {
newArr = new int[arr.length - 1];
for (int index = 0; index < i; index++) {
newArr[index] = arr[index];
}
for (int j = i; j < arr.length - 1; j++) {
newArr[j] = arr[j + 1];
}
break;
}
}
System.out.println("New Array after deleting element = " + elementToBeDeleted
+ " and shifting: " + Arrays.toString(newArr));
}
}
Produzione:
Original Array is: [3, 1, 6, 5, 2, 8, 4]
New Array after deleting element = 5 and shifting: [3, 1, 6, 2, 8, 4]
Usa System.arraycopy()
per rimuovere l’elemento dall’array e Shift in Java
Il System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
copia l’array sorgente nell’array di destinazione, avviando l’azione di copia dalla posizione dell’origine alla posizione della destinazione, fino alla lunghezza data.
Qui passiamo il nostro array sorgente arr
a un metodo removeElement
che esegue due metodi System.copy()
. Creiamo arrDestination
con una lunghezza di 1 inferiore alla lunghezza di arr
poiché un elemento viene eliminato.
Per prima cosa, copiamo gli elementi prima dell’indice 2
poiché dobbiamo eliminare 6 da arr
. Quindi, ottieni gli elementi rimanenti che esistono dopo l’indice dell’elemento che intendevamo eliminare.
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int[] arr = {3, 1, 6, 5, 2, 8, 4};
removeElement(arr, 2);
}
public static void removeElement(int[] arr, int index) {
int[] arrDestination = new int[arr.length - 1];
int remainingElements = arr.length - (index + 1);
System.arraycopy(arr, 0, arrDestination, 0, index);
System.arraycopy(arr, index + 1, arrDestination, index, remainingElements);
System.out.println("Elements -- " + Arrays.toString(arrDestination));
}
}
Produzione:
Elements -- [3, 1, 5, 2, 8, 4]
Usa ArrayList
per rimuovere l’elemento dall’array e Shift in Java
Possiamo convertire un Array
in un ArrayList
per rimuovere un elemento dall’array, e lo shuffling sarebbe curato dallo stesso ArrayList
.
Nel codice seguente, creiamo un array di oggetti Integer
arr
. Passiamo quindi l’array e l’indice dell’elemento da eliminare al metodo removeElementUsingCollection
, che manipola l’array e restituisce un array di oggetti.
L’array passato viene convertito in un ArrayList tempList
e chiamando il metodo remove()
rimuove l’elemento all’indice specificato dall’elenco. Restituisce la lista riconvertito in un array.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Test {
public static void main(String[] args) {
Integer[] arr = {3, 1, 6, 5, 2, 8, 4};
int elementToBeDeleted = 2;
System.out.println("Original Array " + Arrays.toString(arr));
for (int i = 0; i < arr.length; i++) {
if (arr[i] == elementToBeDeleted) {
arr = removeElementUsingCollection(arr, i);
break;
}
}
System.out.println("Array after removing element : " + elementToBeDeleted + " -- ");
for (int i = 0; i < arr.length; i++) {
System.out.print(" " + arr[i]);
}
}
public static Integer[] removeElementUsingCollection(Integer[] arr, int index) {
List<Integer> tempList = new ArrayList<Integer>(Arrays.asList(arr));
tempList.remove(index);
return tempList.toArray(new Integer[0]);
}
}
Produzione:
Original Array [3, 1, 6, 5, 2, 8, 4]
Array after removing element : 2 --
3 1 6 5 8 4
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn