Usuń elementy z kolekcji podczas iteracji
AFAIK, są dwa podejścia:
Iteruj kopię kolekcjiUżyj iteratora rzeczywistej kolekcjiNa przykład,
<code>List<Foo> fooListCopy = new ArrayList<Foo>(fooList); for(Foo foo : fooListCopy){ // modify actual fooList } </code>
i
<code>Iterator<Foo> itr = fooList.iterator(); while(itr.hasNext()){ // modify actual fooList using itr.remove() } </code>
Czy są jakieś powody, by preferować jedno podejście do drugiego (np. Preferowanie pierwszego podejścia z prostej przyczyny czytelności)?