0
内部リストは違法であり、スローされます変更ConcurrentModificationException
:これについて我々はすべてこれを知っている反復
for (Item i : theList) {
if (i.num == 123)
foo(i); // foo modifies theList
}
しかし、何?
for (Item i : theList) {
if (i.num == 123) {
foo(i); // foo modifies theList
break;
}
}
ループが壊れているのでtheLists
のイテレータのnext
が呼び出される前に、何のConcurrentModificationException
はありません。しかしそれはそれを合法化するのだろうか?
最初のものは違法ではありません - 'foo'はリストを変更するのではなく、リストから1つの項目のプロパティを多く変更します。 'foo(theList)'はリストに構造的な変更を加える機会があります。 –
実際にはリストを変更して、それを削除します。 –
fooのコードを教えてください。 –