TGViewer
Java Mentor Java Mentor @your_java_mentor · 289 subscribers
Post #291 403
Вопрос, на который я не ответил на собесе 👩‍💻

Короче, смотрите, все знают, что нельзя удалять из списка элементы в for-each цикле 👎

А если не знают, то теперь знают.👍

Если внутри что-то удалить из списка (или добавить) будет атата: ⚠️ConcurrentModificationException

Когда мы итерируемся по коллекции через for-each , Компилятор преобразует for-each в использование Iterator, как если бы код выглядел так:

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
System.out.println(item);
}


И даже если мы возьмем итератор:

Iterator<String> iterator = list.iterator();

Добавим что-то в список:

list.add("B");


Пробежимся итератором по списку:

while (iterator.hasNext()) {
String item = iterator.next();
System.out.println(item);
}




На первой же итерации в методе next() получим ту же бяку: ⚠️ConcurrentModificationException 💩

❓❓❓
Вопрос: как итератор понимает, что список модифицировали?
  • 🔥 6
  • 👍 3
  • ❤ 1
More from @your_java_mentor
  1. Sep 2, 2026photo post
  2. Sep 2, 2026video post
  3. Sep 1, 2026Post #394
  4. Sep 1, 2026Post #393
  5. Aug 28, 2026Как по вашему, что не так с этим кодом? ❌ В методе main в список добавляются магические ко…
  6. Aug 19, 2026UserService + UserServiceImpl — но Impl тут единственный. Как вы считаете: стоит ли заводи…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →