Встречается на собеседованиях • сегодня
Что такое Fail-fast в Java
Fail-fast — это поведение коллекций Java, при котором они немедленно выбрасывают `ConcurrentModificationException`, если обнаруживают изменение коллекции во время итерации (кроме случаев, когда изменение выполняется через методы самого итератора).
**Пример:**
```java
List list = new ArrayList<>(Arrays.asList("a", "b", "c"));
for (String s : list) {
list.remove(s); // Выбросит ConcurrentModificationException
}
```
**Причина:**
Коллекции (например, `ArrayList`, `HashMap`) используют внутренний счетчик `modCount`. При изменении коллекции (добавление/удаление) счетчик инкрементируется. Итератор проверяет, что `modCount` не изменился во время итерации.
**Альтернатива:**
Для безопасного изменения во время итерации используйте:
- `Iterator.remove()`
- `CopyOnWriteArrayList`
- `ConcurrentHashMap`

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы