Мне интересно, что на самом деле происходит за кулисами, когда я выполняю следующий код:
List<Object> list = new ArrayList<Object>();
fillTheList(); // Filling a list with 10 objects
int count = 0;
for (Object o : list) {
count++;
if (count == 5) {
list.remove(count);
}
o.toString();
}
После удаления элемента я получаю исключение ConcurrentModificationException
.
Я не понимаю, почему после удаления одного из элементов невозможно просто взять следующий, доступный в коллекции, и продолжить цикл.