[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-kakoe-khudshee-vremya-raboty-metoda-add-dlya-arraylist":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},449,"kakoe-khudshee-vremya-raboty-metoda-add-dlya-arraylist",12,"collections","Collections","📚","Какое худшее время работы метода add() для ArrayList","Худшее время — O(N). Оно возникает в двух ситуациях: при вставке в начало или середину (сдвиг элементов вправо) и при исчерпании емкости массива (создание нового массива в 1.5 раза больше и копирование всех элементов).\n\nМетод `add(E element)` (добавление в конец) амортизированно работает за O(1): в большинстве случаев это просто запись в следующую ячейку массива, и лишь изредка — расширение. Метод `add(int index, E element)` всегда требует сдвига `size - index` элементов вправо через `System.arraycopy()`.\n\n> **На собеседовании:** ответ — O(N) из-за возможного расширения массива и копирования. Упомяните, что добавление в конец амортизированно O(1) и что для больших вставок полезно задать initialCapacity.","","junior",[15,16],"performance","jcf",[],null,{"title":20,"description":21,"ogTitle":22,"ogDescription":23,"keywords":24,"schemaAnswer":33,"featuredSnippetReady":34},"add() в LinkedList — O(N) с индексом, O(1) без — Gymterview","add(index, e) — O(N): поиск позиции. add(e) без индекса — O(1): прямая ссылка на последний узел. addFirst()\u002FaddLast() — O(1).","Сложность add() в LinkedList — Gymterview","add(e) в конец — O(1), add(index, e) — O(N) на поиск позиции.",[25,26,27,28,29,30,31,32],"LinkedList","add()","O(N)","O(1)","addFirst","addLast","Java","собеседование","O(N) для add(index, e) — нужен поиск узла на позиции index. add(e) без индекса — O(1), т.к. LinkedList хранит ссылку на последний узел. addFirst()\u002FaddLast() — O(1).",true]