[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-kak-poluchit-kollektsiyu-tolko-dlya-chteniya":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},500,"kak-poluchit-kollektsiyu-tolko-dlya-chteniya",12,"collections","Collections","📚","Как получить коллекцию только для чтения","Через статические методы класса `Collections`:\n\n```java\nList\u003CString> readOnly = Collections.unmodifiableList(list);\nSet\u003CString> readOnly = Collections.unmodifiableSet(set);\nMap\u003CK, V> readOnly = Collections.unmodifiableMap(map);\n```\n\nОбертка перехватывает все мутирующие методы (add, remove, set, put) и выбрасывает `UnsupportedOperationException`. При этом обертка — это view: она не копирует данные, а ссылается на оригинальную коллекцию. Изменения в оригинале будут видны через обертку.\n\nНачиная с Java 9, доступны фабричные методы для создания полностью неизменяемых коллекций:\n\n```java\nList\u003CString> immutable = List.of(\"a\", \"b\", \"c\");\nSet\u003CString> immutable = Set.of(\"x\", \"y\");\nMap\u003CString, Integer> immutable = Map.of(\"a\", 1, \"b\", 2);\n```\n\nВ отличие от unmodifiable-оберток, коллекции из `List.of()` \u002F `Set.of()` \u002F `Map.of()` — это настоящие immutable-коллекции: не допускают null, не связаны с оригиналом и оптимизированы по памяти.\n\n> **На собеседовании:** назовите Collections.unmodifiableXxx() и List.of()\u002FSet.of()\u002FMap.of() (Java 9+). Объясните разницу: unmodifiable — view на оригинал, of() — полностью immutable.","","junior",[15,16],"основы","jcf",[],null,{"title":20,"description":21,"ogTitle":22,"ogDescription":23,"keywords":24,"schemaAnswer":34,"featuredSnippetReady":35},"Неизменяемые коллекции — unmodifiable и List.of — Gymterview","Collections.unmodifiableXxx — view (связана с оригиналом). List.of\u002FSet.of\u002FMap.of (Java 9+) — полностью immutable. UnsupportedOperationException при модификации.","Неизменяемые коллекции в Java — Gymterview","unmodifiableXxx — view. List.of()\u002FSet.of() (Java 9+) — полный immutable, без null.",[25,26,27,28,29,30,31,32,33],"unmodifiableList","unmodifiableMap","List.of","Set.of","Map.of","immutable","UnsupportedOperationException","Java","собеседование","Collections.unmodifiableList\u002FSet\u002FMap — view-обёртка, связана с оригиналом. List.of\u002FSet.of\u002FMap.of (Java 9+) — полностью immutable: не допускают null, не связаны с оригиналом. UnsupportedOperationException при попытке модификации.",true]