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)?

Respuestas a la pregunta(8)

Su respuesta a la pregunta