[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-chto-takoe-fail-fast-povedenie":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},428,"chto-takoe-fail-fast-povedenie",12,"collections","Collections","📚","Что такое fail-fast поведение","Fail-fast поведение — это стратегия немедленного выброса исключения при обнаружении конкурентной модификации коллекции, вместо продолжения работы с потенциально некорректными данными.\n\nВ JCF fail-fast итераторы выбрасывают `ConcurrentModificationException`, если после создания итератора коллекция была изменена напрямую (не через методы самого итератора). Механизм реализован через счетчик модификаций (modCount):\n\n- при каждом структурном изменении коллекции (add, remove) значение modCount увеличивается;\n- при создании итератора текущий modCount сохраняется в поле expectedModCount;\n- при каждом вызове next() или remove() итератор сравнивает expectedModCount с текущим modCount коллекции;\n- если значения расходятся, выбрасывается ConcurrentModificationException.\n\nFail-fast поведение не гарантировано в многопоточной среде — оно работает на основе best-effort проверки. Для надежной работы с коллекциями из нескольких потоков следует использовать concurrent-коллекции из пакета `java.util.concurrent`.\n\n> **На собеседовании:** объясните механизм через modCount и expectedModCount. Подчеркните, что fail-fast — это best-effort, а не строгая гарантия.","","junior",[15,16,17],"основы","jcf","concurrency",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":33,"featuredSnippetReady":34},"Что такое fail-fast поведение в Java Collections — Gymterview","Fail-fast поведение в Java: ConcurrentModificationException при модификации коллекции во время итерации. Механизм modCount и expectedModCount.","Fail-fast поведение в Java Collections — Gymterview","Fail-fast итераторы выбрасывают ConcurrentModificationException при модификации коллекции. Механизм через modCount.",[26,27,28,29,30,31,32],"fail-fast","ConcurrentModificationException","modCount","Iterator","JCF","Java","собеседование","Fail-fast — стратегия немедленного выброса ConcurrentModificationException при обнаружении модификации коллекции во время итерации. Реализован через счётчик modCount: при каждом изменении коллекции modCount увеличивается, итератор сравнивает его с expectedModCount.",true]