Eliminar elemento del array y luego cambiar otros elementos en Java

Rupam Yadav 12 octubre 2023
  1. Utilice el bucle for para eliminar el elemento del array y cambiar en Java
  2. Utilice System.arraycopy() para eliminar el elemento del array y Shift en Java
  3. Utilice ArrayList para eliminar el elemento del array y Shift en Java
Eliminar elemento del array y luego cambiar otros elementos en Java

Array en Java es una colección de elementos del mismo tipo de tamaño fijo. Java proporciona varios métodos para realizar diferentes manipulaciones relacionadas con un array.

Utilice el bucle for para eliminar el elemento del array y cambiar en Java

En este enfoque, usamos múltiples bucles for para recorrer todos los elementos del arr y verificar el elemento que queremos eliminar. Cuando se encuentra el elemento a eliminar, creamos un nuevo Array newArr con el tamaño arr.length-1. Ejecutamos otro bucle para copiar todos los elementos antes del índice en el que está elementToBeDeleted.

Después de esto, ejecutamos otro bucle para copiar los elementos restantes del array después del elementToBeDeleted, dejando el que tenemos que eliminar.

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));
  }
}

Producción :

Original Array is: [3, 1, 6, 5, 2, 8, 4]
New Array after deleting element = 5 and shifting: [3, 1, 6, 2, 8, 4]

Utilice System.arraycopy() para eliminar el elemento del array y Shift en Java

El System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) copia el array de origen en el array de destino, iniciando la acción de copia desde la posición de la fuente a la posición del destino, hasta la longitud dada.

Aquí, pasamos nuestra matriz de origen arr a un método removeElement que ejecuta dos métodos System.copy(). Creamos arrDestination con una longitud de 1 menos que la longitud de arr cuando se elimina un elemento.

Primero, copiamos los elementos antes del índice 2 ya que tenemos que eliminar 6 de arr. A continuación, obtenga los elementos restantes que existen después del índice del elemento que pretendíamos eliminar.

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));
  }
}

Producción :

Elements -- [3, 1, 5, 2, 8, 4]

Utilice ArrayList para eliminar el elemento del array y Shift en Java

Podemos convertir una Array en una ArrayList para eliminar un elemento del array, y la propia ArrayList se encargaría de la mezcla.

En el código siguiente, creamos un array de objetos Integer arr. Luego pasamos el array y el índice del elemento a eliminar al método removeElementUsingCollection, que manipula el array y devuelve un array de objetos.

el array pasada se convierte en una ArrayList tempList y la llamada al método remove() elimina el elemento en el índice especificado de la lista. Devuelve la lista convertida de nuevo a 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]);
  }
}

Producción :

Original Array [3, 1, 6, 5, 2, 8, 4]
Array after removing element : 2 -- 
 3 1 6 5 8 4
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

Artículo relacionado - Java Array