Avatar ·

Suppression d'objets d'une collection dans une boucle sans ConcurrentModificationException

Bonjour à tous ! J'écris une petite application en Java pour gérer une liste de tâches. J'ai un ArrayList, où Task est un simple POJO avec un champ boolean isCompleted. Je dois supprimer de la liste toutes les tâches terminées. J'ai écrit ce code : ```java List tasks = new ArrayList<>(); // ... ajout de tâches ... for (Task task : tasks) { if (task.isCompleted()) { tasks.remove(task); } } ``` Mais lors de l'exécution, j'obtiens une `ConcurrentModificationException`. J'ai lu que cela est lié à la modification de la collection pendant l'itération, mais je ne comprends pas comment faire correctement. J'ai essayé d'utiliser un for classique avec un index — parfois ça fonctionne, parfois ça lance une IndexOutOfBoundsException, car après la suppression, les indices se décalent. Dites-moi, s'il vous plaît, comment supprimer correctement les éléments.