Sobes.tech
Junior — Middle

¿Qué sucede si se impide la eliminación de elementos de la colección durante su iteración?

sobes.tech AI

Respuesta de la IA

Si durante la iteración de una colección en Java intentas eliminar elementos directamente de ella (por ejemplo, mediante el método de la colección), esto provocará una ConcurrentModificationException. Esto sucede porque el iterador realiza un seguimiento de los cambios en la colección, y eliminar elementos fuera de sus métodos viola la integridad de la iteración.

La forma correcta de eliminar elementos durante la iteración es usar el método remove() del propio iterador:

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String item = iterator.next();
    if (condición) {
        iterator.remove(); // eliminación segura
    }
}

De esta manera, la eliminación no interrumpirá el funcionamiento del iterador y no se producirá ninguna excepción.