❓ Что такое fail-fast итератор и как безопасно удалять элементы во время обхода?
fail-fast итератор бросает ConcurrentModificationException, если коллекцию изменили во время итерации в обход самого итератора.
Механизм: коллекция хранит счётчик modCount. Итератор запоминает его значение при создании и сверяет на каждом next(). Если структура изменилась и счётчики разошлись — бросается исключение. Это не гарантия защиты, а способ быстро отловить баг.
Чтобы безопасно удалять во время обхода:
→ iterator.remove();
→ collection.removeIf(...);
→ или конкурентные коллекции вроде CopyOnWriteArrayList.
🐸 Библиотека собеса по Java
#core
Post #1416
940
- 👍 4
- 🔥 1
- 👏 1