[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-neobkhodimo-dobavit-1-mln-elementov-kakuyu-strukturu-vy-ispolzuete":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},450,"neobkhodimo-dobavit-1-mln-elementov-kakuyu-strukturu-vy-ispolzuete",12,"collections","Collections","📚","Необходимо добавить 1 млн элементов — какую структуру вы используете","Ответ зависит от того, в какую часть списка происходит вставка и какие операции планируются далее.\n\nЕсли вставка в конец и затем произвольный доступ — `ArrayList` с заданной начальной емкостью: `new ArrayList\u003C>(1_000_000)`. Это избавит от многократного расширения массива и копирования данных. ArrayList будет расходовать меньше памяти и обеспечит быстрый доступ по индексу.\n\nЕсли вставка преимущественно в начало — `LinkedList` или `ArrayDeque` будут быстрее, т.к. не требуют сдвига элементов.\n\nЕсли порядок не важен и нужна проверка на уникальность — `HashSet` с `new HashSet\u003C>(1_400_000, 0.75f)` (initialCapacity с запасом, чтобы избежать рехеширования).\n\nНа практике для миллиона элементов ArrayList с предзаданной емкостью — наиболее универсальный выбор: предсказуемая производительность, минимальное потребление памяти и cache-friendly доступ.\n\n> **На собеседовании:** не давайте ответ сразу. Задайте уточняющие вопросы: куда вставляем, что потом делаем с данными, есть ли ограничения по памяти. Это покажет системное мышление.","","middle",[15,16,17],"performance","best-practices","jcf",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":33,"featuredSnippetReady":34},"Какую коллекцию выбрать для 1 млн элементов — Gymterview","ArrayList с initialCapacity — для вставки в конец. LinkedList — для вставки в начало. HashSet — для уникальности. Задайте уточняющие вопросы перед ответом.","Коллекция для 1 млн элементов — Gymterview","ArrayList с предзаданной ёмкостью — универсальный выбор. Уточните куда вставляем и что делаем дальше.",[26,27,28,29,30,31,32],"ArrayList","LinkedList","initialCapacity","1 миллион","производительность","Java","собеседование","Зависит от сценария. Вставка в конец + доступ по индексу — ArrayList с new ArrayList\u003C>(1_000_000). Вставка в начало — LinkedList или ArrayDeque. Уникальность — HashSet с запасом capacity. На практике ArrayList с предзаданной ёмкостью — универсальный выбор.",true]