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]); } } }
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]); } } }
Updated array:- for hello world