Мы все знаем, что это незаконно и будет выдавать 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
's итератор next
вызывается, ConcurrentModificationException
нет.Но делает ли это законным?