Nuestro team de trabajo ha estado horas buscando para darle soluciones a tu duda, te brindamos la respuesta así que deseamos serte de gran ayuda.
Solución:
Una cosa que debe tener en cuenta es que cuando usa ArrayLists
que están destinados a ser versátiles, más que Arrays
. Puede acortar un array eliminando un índice completo, agréguele un índice y haga maravillas con ArrayLists
.
Este es un problema común con las personas que no se dan cuenta, o no recuerdan, que cuando elimina un valor, el ArrayList
índices (o cualquiera que sea el plural correcto) se reajustan y el ArrayList
acorta
Al intentar eliminar elementos de un ArrayList
siempre debe comenzar al final de la ArrayList
.
for(int x = arrayList.size() - 1; x > 0; x--)
arrayList.remove(x);
Esto debería proporcionarle la función que está buscando. Eche un vistazo a la API de ArrayList para conocer otros métodos que pueden ayudarlo.
Utilizar Iterator.remove()
para eliminar elementos durante la iteración.
for (Iterator iter = myarraylist.iterator(); iter.hasNext(); )
String element = iter.next();
if (element meets some criteria)
iter.remove();
O use el filtro de Google Guava que devuelve una vista filtrada y deja la lista original sin cambios.
Iterable filtered = Iterables.filter(myarraylist, new Predicate()
public boolean apply(String element)
return true of false based on criteria
);
Ten en cuenta mostrar este ensayo si te valió la pena.