Comment surmonter l'exception ConcurrentModificationException lors du parcours et de la suppression d'éléments d'une ArrayList
Itérer sur une ArrayList tout en supprimant simultanément des éléments peut déclencher le fameux Java. util.ConcurrentModificationException. Pour résoudre ce problème, il existe plusieurs bonnes pratiques à prendre en compte.
Une approche consiste à créer une liste distincte des éléments que vous souhaitez supprimer. Pendant l'itération de la boucle, ajoutez ces éléments à la liste secondaire, et une fois l'itération terminée, appelez la méthode originalList.removeAll(valuesToRemove).
Vous pouvez également utiliser la méthode remove() directement sur l'itérateur. Notez que cette technique vous oblige à éviter la boucle for améliorée. Par exemple, pour éliminer les chaînes dépassant une longueur de 5 d'une liste :
List<String> list = new ArrayList<String>(); for (Iterator<String> iterator = list.iterator(); iterator.hasNext(); ) { String value = iterator.next(); if (value.length() > 5) { iterator.remove(); } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!