Hola, tengo un problemilla que seguro que tiene fácil solución pero me lleva de cabeza. La cosa es que dentro de un for, tengo qeu ir eliminando elementos de un arrayList, tal que así:
for (int i = 0; i < lista.size(); i++) { //Recorremos toda la lista
if (lista.get(i).getPadre().equals(nodoPadre)) {
hijos.add(lista.get(i));
lista.remove(i); //eliminar
}
}
Ahora bien, tengo que elminar TODOS los nodos que cumplan el if, pero siempre se me queda uno porque en la última iteración, al haber eliminado un elemento de la lista, lista.size() devuelve el mismo valor que la variable i y entonces la última iteración no se hace. He probado también a sacar lista.size() a una variable externa del bucle:
int tam = lista.size();
for (int i = 0; i < tam; i++) { //
if (lista.get(i).getPadre().equals(nodoPadre)) { //Excepción
hijos.add(lista.get(i)); //
lista.remove(i); //
}
}
Pero tengo una excepción IndexOutOfBoundsException en la línea del if (lo cual tiene bastante sentido).
Bueno, pues ese es el problema que tengo, si me podéis echar una mano mil gracias.