Чем iterator.remove() отличается от list.remove(), так что итератор не выдает исключение, а list.remove() выдает его? В конце концов, оба изменяют размер коллекции.
Пожалуйста, игнорируйте многопоточность здесь. Я просто говорю о цикле for-each и цикле итератора. Насколько я знаю, цикл for-each создает итератор только внутри.
Я смущен.