Rimuovi elemento dall'array e quindi sposta altri elementi in Java

Rupam Yadav 12 ottobre 2023
  1. Usa il cicli for per rimuovere l’elemento dall’array e Shift in Java
  2. Usa System.arraycopy() per rimuovere l’elemento dall’array e Shift in Java
  3. Usa ArrayList per rimuovere l’elemento dall’array e Shift in Java
Rimuovi elemento dall'array e quindi sposta altri elementi 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
Autore: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

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

Articolo correlato - Java Array