Eliminar elementos de la colección mientras se itera.
AFAIK, hay dos enfoques:
Iterar sobre una copia de la colección.Usa el iterador de la colección actual.Por ejemplo,
<code>List<Foo> fooListCopy = new ArrayList<Foo>(fooList); for(Foo foo : fooListCopy){ // modify actual fooList } </code>
y
<code>Iterator<Foo> itr = fooList.iterator(); while(itr.hasNext()){ // modify actual fooList using itr.remove() } </code>
¿Hay alguna razón para preferir un enfoque sobre el otro (por ejemplo, preferir el primer enfoque por el simple motivo de la legibilidad)?