Entfernen Sie Elemente aus der Sammlung, während Sie iterieren

AFAIK gibt es zwei Ansätze:

Durchlaufen Sie eine Kopie der SammlungVerwenden Sie den Iterator der aktuellen Sammlung

Zum Beispiel,

<code>List<Foo> fooListCopy = new ArrayList<Foo>(fooList);
for(Foo foo : fooListCopy){
    // modify actual fooList
}
</code>

und

<code>Iterator<Foo> itr = fooList.iterator();
while(itr.hasNext()){
    // modify actual fooList using itr.remove()
}
</code>

Gibt es Gründe, einen Ansatz dem anderen vorzuziehen (z. B. den ersten aus Gründen der Lesbarkeit vorzuziehen)?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage