❓ В чем разница между fail-fast и fail-safe итераторами?
❌
Fail-fast итераторы — это те, которые быстро падают при первой же ошибке, потому что написаны на скорострельном C++. А fail-safe итераторы работают медленно, зато безопасно, потому что каждый элемент проверяется антивирусом перед возвратом.
✔️
🔹 Fail-fast итераторы:
→ Бросают ConcurrentModificationException при структурном изменении коллекции во время итерации.
→ Проверяют modCount (счетчик модификаций) при каждом вызове next().
→ Используются в большинстве коллекций из java.util (ArrayList, HashMap, HashSet).
→ Работают на оригинальной коллекции.
🔹 Fail-safe итераторы:
→ Работают на копии/снимке коллекции, поэтому не бросают исключений.
→ Используются в java.util.concurrent коллекциях (CopyOnWriteArrayList, ConcurrentHashMap).
→ Могут не отражать актуальное состояние коллекции (weakly consistent).
→ Потребляют больше памяти из-за копирования.
🐸 Библиотека собеса по Java
#core
Post #1167
1.85K
- 👍 7
- 🔥 3
- 😁 3
- ❤ 1