Eliminación de objetos de una colección en un bucle sin ConcurrentModificationException
¡Hola a todos! Estoy escribiendo una pequeña aplicación en Java para gestionar una lista de tareas. Tengo un ArrayList, donde Task es un simple POJO con un campo boolean isCompleted. Necesito eliminar de la lista todas las tareas completadas. Escribí este código:
```java
List tasks = new ArrayList<>();
// ... agregamos tareas ...
for (Task task : tasks) {
if (task.isCompleted()) {
tasks.remove(task);
}
}
```
Pero al ejecutarlo obtengo una `ConcurrentModificationException`. He leído que esto está relacionado con la modificación de la colección durante la iteración, pero no entiendo cómo hacerlo correctamente. Probé usar un for normal con índice — a veces funciona, a veces lanza IndexOutOfBoundsException, porque después de eliminar los índices se desplazan. Por favor, indíquenme cómo eliminar elementos de una colección en un bucle correctamente. ¿Necesito usar algún iterador especial o hay formas más modernas en Java 8+? ¡Gracias de antemano!
<<>>
Formas correctas de eliminar elementos
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
PHP en el mundo del hardware: cómo escribir código Embedded sin microcontroladores
Algoritmos y estructuras de datos en C++ para principiantes: guía completa
Despliegue avanzado de aplicaciones PHP en VPS: guía paso a paso
Flujo de trabajo Git para desarrolladores Go: del caos al código limpio