Bonjour,
Lorsque l'on parcours une ArrayList avec un for:each (voir exemple ci-dessus) et que l'on veut supprimer un élément de la ArrayList que l'on parcours, on peut avoir une exception de ce genre :
Pour éviter ce genre d’exception, on peut soit utiliser une ConcurrentArrayList ou bien tout simplement utiliser un iterator :
Il est également possible de faire un clone de la liste que l'on parcours :
ArrayList<String> myList=new ArrayList<String>();
for(String key:myList)
{
//...
myList.remove(key);
//...
}
for(String key:myList)
{
//...
myList.remove(key);
//...
}
Lorsque l'on parcours une ArrayList avec un for:each (voir exemple ci-dessus) et que l'on veut supprimer un élément de la ArrayList que l'on parcours, on peut avoir une exception de ce genre :
Exception in thread "Thread-0" java.util.ConcurrentModificationException
Pour éviter ce genre d’exception, on peut soit utiliser une ConcurrentArrayList ou bien tout simplement utiliser un iterator :
ArrayList<String> myList=new ArrayList<String>();
Iterator<String> itMyHashMap=myList.iterator();
while(itMyHashMap.hasNext())
{
//...
itMyHashMap.remove();
//...
}
Iterator<String> itMyHashMap=myList.iterator();
while(itMyHashMap.hasNext())
{
//...
itMyHashMap.remove();
//...
}
Il est également possible de faire un clone de la liste que l'on parcours :
for (Object instance : (ArrayList)list.clone())
{
//...
list.remove(instance);
//...
}
{
//...
list.remove(instance);
//...
}