¿Cómo eliminar un objeto dado de una array en Java?

Dada una array de N objetos , la tarea es eliminar todas las ocurrencias de un objeto dado de la array en Java.

Ejemplo:

Entrada: String[] arr = { “Geeks”, “para”, “Geeks”, “hola”, “mundo” }, removeObj = “Geeks” 
Salida: actualizado arr[] = {“para”, “hola”, “mundo”}
Explicación: todas las apariciones de removeObj se han eliminado de la array.

Los métodos para eliminar objetos de una array en Java son:

En general, existen dos métodos para eliminar objetos de una array en Java, que son:

1. Usando el método java.util.Arrays.copyOf en Java:

El método java.util.Arrays.copyOf() copia la array dada a una longitud específica. Usaremos este método para eliminar todas las ocurrencias de un objeto dado de la array. La idea es omitir todos los elementos iguales al objeto que se eliminará (es decir, removeObj ) y desplazar el resto de los objetos a la izquierda de la array. Luego, al usar el método copyOf() , haremos la copia de la array en el último índice donde se ha desplazado el último objeto que no es igual a removeObj .

A continuación se muestra la implementación del enfoque anterior:

Java

// Java Program to remove a given
// object from the array
import java.util.Arrays;
 
public class Main {
    public static void main(String args[])
    {
 
        // Given an array of String objects
        String[] arr
            = { "Geeks", "for", "Geeks", "hello", "world" };
 
        // object to be removed
        String removeObj = "Geeks";
 
        // Here variable i is used to store
        // the element as ith index
        // variable j is iterated over
        // complete array to find the removeObj
        int i, j;
        for (i = 0, j = 0; j < arr.length; j++)
 
            // Check if jth object is
            // not equal to removeObj
            if (!arr[j].equals(removeObj)) {
 
                // If jth object is not equal to
                // removeObj then it is
                // inserted at ith index
                arr[i++] = arr[j];
            }
 
        // Making arr equal to copyof
        // of itself till ith index
        arr = Arrays.copyOf(arr, i);
 
        // Print the updated array
        System.out.println("Updated array:- ");
        for (int ind = 0; ind < arr.length; ind++) {
            System.out.println(arr[ind]);
        }
    }
}
Producción

Updated array:- 
for
hello
world

2. Usando el método java.util.Arrays.asList() en Java:

El método java.util.Arrays.asList() se usa para devolver una lista de tamaño fijo respaldada por la array especificada. Hace una lista de la array . Primero convertiremos la array dada a List usando el método Arrays.asList() . Ahora, la interfaz List en Java tiene un método como removeAll() para eliminar todas las ocurrencias del elemento dado (es decir, removeObj ) de la lista. Después de eso, volvemos a convertir esa lista en array mediante el método toArray()

A continuación se muestra la implementación:

Java

// Java Program to remove a
// given object from the array
import java.util.*;
 
public class Main {
    public static void main(String args[])
    {
 
        // Given an array of String objects
        String[] arr
            = { "Geeks", "for", "Geeks", "hello", "world" };
 
        // object to be removed
        String removeObj = "Geeks";
 
        // Converting the array to list
        List<String> list
            = new ArrayList<String>(Arrays.asList(arr));
 
        // Remove all occurrences of given string
        list.removeAll(Arrays.asList(removeObj));
 
        // Convert back list to array
        // the length of array
        // will also be updated
        arr = list.toArray(new String[0]);
 
        // Print the updated array
        System.out.println("Updated array:- ");
        for (int ind = 0; ind < arr.length; ind++) {
            System.out.println(arr[ind]);
        }
    }
}
Producción

Updated array:- 
for
hello
world

Publicación traducida automáticamente

Artículo escrito por sachin801 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *