De ce que je sache, il existe deux approches :
- Parcourir une copie de la collection
- Utiliser l'itérateur de la collection réelle
Par exemple,
List fooListCopy = new ArrayList(fooList);
for(Foo foo : fooListCopy){
// modifier la liste fooList actuelle
}
et
Iterator itr = fooList.iterator();
while(itr.hasNext()){
// modifier la liste fooList actuelle en utilisant itr.remove()
}
Y a-t-il des raisons de préférer une approche à l'autre (par exemple, préférer la première approche pour la simple raison de lisibilité) ?