[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-kak-proiskhodit-udalenie-elementov-iz-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},451,"kak-proiskhodit-udalenie-elementov-iz-arraylist",12,"collections","Collections","📚","Как происходит удаление элементов из ArrayList","При удалении элемента из ArrayList все элементы правее удаляемого сдвигаются на одну позицию влево через `System.arraycopy()`, а в последнюю позицию записывается null (для помощи GC). Значение size уменьшается на 1, но реальный размер внутреннего массива (capacity) не изменяется.\n\nАвтоматического сжатия массива в ArrayList не предусмотрено. Если после удаления большого количества элементов нужно освободить неиспользуемую память, можно вызвать `trimToSize()` — этот метод создаст новый массив размером size и скопирует в него оставшиеся элементы.\n\nСложность удаления: O(N) в общем случае (из-за сдвига элементов), O(1) для удаления последнего элемента.\n\n> **На собеседовании:** упомяните сдвиг элементов через System.arraycopy(), отсутствие автоматического сжатия и метод trimToSize().","","junior",[15,16],"основы","jcf",[],null,{"title":20,"description":21,"ogTitle":22,"ogDescription":23,"keywords":24,"schemaAnswer":33,"featuredSnippetReady":34},"Удаление элементов из ArrayList — System.arraycopy и trimToSize — Gymterview","При удалении элементы правее сдвигаются влево через System.arraycopy(). Capacity не уменьшается. Для сжатия — trimToSize(). Удаление последнего — O(1).","Удаление элементов из ArrayList — Gymterview","Сдвиг элементов влево, capacity не меняется. trimToSize() для сжатия. O(N) общий случай, O(1) для последнего.",[25,26,27,28,29,30,31,32],"ArrayList","remove()","System.arraycopy","trimToSize","capacity","size","Java","собеседование","Элементы правее сдвигаются на одну позицию влево через System.arraycopy(). Capacity не уменьшается. Для освобождения памяти — trimToSize(). Сложность: O(N) в общем случае, O(1) для последнего элемента.",true]