Eliminación de arreglos en java

Preguntado hace 9 meses

Johan Ramírez

Editada hace 9 meses

Julián Mur
Votos
PositivosNegativosTotal
0 0 0
31 Visualizaciones
Compártelo: Compártelo en twitterCompártelo en Facebook

Estado mirando, y poniendo logica de como eliminar un dato dentro de un arreglo en java y no entiendo. ¿como hago para eliminar un dato de un arreglo en java?

Actualizando datos
Hola, Johan Ramírez, añadí la etiqueta listas. Saludos. Julián Mur hace 9 meses

1 Respuesta

Hace 9 meses

Kuu

Kuu

366Distinciones de plata1Distinciones de bronce7
Editada hace 9 meses
Votos
PositivosNegativosTotal
202

Entiendo que por arreglo te refieres a un array.

Estos elementos son memoria estatica, es decir, se reserva un espacio en memoria para ese array del tamaño que sea y no se libera hasta que acaba la ejecución. Por lo que no puedes eliminar un dato de un array, pues esa memoria permanece ahí.

Pero lo que sí puedes hacer es sobreescribir ese valor por otro, por ejemplo si es un array de objetos, puedes poner la posicion a eliminar con valor null, ejemplo suponiendo que quieras eliminar el 5º elemento:

Objeto[] array = new Objeto[10];
//Inicializamos el array
for(int i = 0; i < array.length; i++)
    array[i]=new Objeto();
//Eliminamos el quinto elemento
array[4]=null;

Si el array no es de objetos y es de tipos primitivos (int, byte, char, float, double,boolean) no lo puedes poner a null, pero puedes elegir tu algún valor que sepas que significa "eliminado", por ejemplo en el caso de int un valor negativo puede significar eliminado para ti. O puedes tener un array secundario de tipo boolean que se llame eliminiados y de la misma longitud que el original, de tal manera que si un dato ya no es válido, lo marques como true en el array "eliminados".Ejemplo:

int[] array = new int[10];
boolean[] eliminados = new boolean[10];
//Inicializamos el array
for(int i = 0; i < array.length; i++){
    array[i]=i;
    eliminados[i]=false;
}
//Eliminamos el quinto elemento
eliminados[4]=true;

Luego cuando vayas usar los datos, harías una comprobación del tipo:

if(!eliminados[x])....
else System.out.println("El dato "+x+" ha sido eliminado!");

Espero que te ayude!

Cerrar

Gracias, funciona Johan Ramírez hace 9 meses

Tu respuesta

Confirmación

Cerrar

Si sales ahora, perderás los cambios. ¿Estás seguro de querer salir?

Para participar en Babelias, debes estar convenientemente validado. Si ya eres usuario inicia sesión, si no lo eres, te puedes registrar.

Dar una respuesta

Trata de ser descriptivo, usa al menos 25 caracteres