Fail-fast и fail-safe - это два подхода к обработке изменений в коллекциях, которые происходят во время итерации. Fail-fast механизм предполагает, что если коллекция была изменена во время итерации, то итератор должен сигнализировать об этом немедленно, через генерацию исключения ConcurrentModificationException. Это поведение дает возможность быстро обнаруживать ошибки и предотвращать несогласованность данных в коллекции. Fail-safe механизм предполагает, что итератор не будет генерировать исключения при изменении коллекции во время итерации...
Fail-fast и fail-safe представляют две разные стратегии обработки ошибок, применяемые при работе с коллекциями в Java. Итераторы fail-fast были добавлены в Java для обеспечения безопасности при работе с многопоточными коллекциями. Они основаны на модели "чистого" итератора, который не позволяет изменять список, пока он перебирается. Если во время перебора элементов коллекции происходит изменение структуры коллекции (например, добавление или удаление элемента), то итератор быстро завершает работу и выбрасывает исключение ConcurrentModificationException, чтобы предотвратить возможные ошибки в работе программы...