[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-privedite-primery-iteratorov-realizuyushchikh-povedenie-fail-safe":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":17,"progress":18,"seo":19},430,"privedite-primery-iteratorov-realizuyushchikh-povedenie-fail-safe",12,"collections","Collections","📚","Приведите примеры итераторов, реализующих поведение fail-safe","Итераторы с fail-safe (weakly consistent) поведением предоставляют коллекции из пакета `java.util.concurrent`. Основные примеры:\n\n- Итератор `CopyOnWriteArrayList` — работает со снимком массива, созданным на момент создания итератора. Любые модификации оригинальной коллекции создают новую копию массива и не влияют на итерацию.\n- Итератор `CopyOnWriteArraySet` — аналогично, основан на CopyOnWriteArrayList.\n- Итератор представления `keySet()` коллекции `ConcurrentHashMap` — работает с weakly consistent семантикой: может отражать часть изменений, произведенных после создания итератора.\n\nНа практике выбор между fail-fast и fail-safe зависит от требований: если итерация происходит в многопоточной среде, используют concurrent-коллекции. Если в однопоточном коде — стандартные коллекции с fail-fast итераторами.\n\n> **На собеседовании:** назовите CopyOnWriteArrayList и ConcurrentHashMap как два основных примера. Объясните разницу: первый копирует весь массив, второй использует weakly consistent подход.","","junior",[15,16],"jcf","concurrency",[],null,{"title":20,"description":21,"ogTitle":20,"ogDescription":22,"keywords":23,"schemaAnswer":31,"featuredSnippetReady":32},"Примеры fail-safe итераторов в Java — Gymterview","Примеры fail-safe (weakly consistent) итераторов: CopyOnWriteArrayList, CopyOnWriteArraySet, ConcurrentHashMap. Разница между snapshot и weakly consistent.","CopyOnWriteArrayList и ConcurrentHashMap — примеры fail-safe итераторов. Snapshot vs weakly consistent.",[24,25,26,27,28,29,30],"fail-safe","CopyOnWriteArrayList","CopyOnWriteArraySet","ConcurrentHashMap","weakly consistent","Iterator","Java","CopyOnWriteArrayList — работает со снимком массива. CopyOnWriteArraySet — основан на CopyOnWriteArrayList. ConcurrentHashMap keySet() — weakly consistent: может отражать часть изменений после создания итератора.",true]