90% Программистов не знают ответ на этот вопрос

Опубликовано: 18 Июнь 2026
на канале: pingwit
2,461
26

Кто справится быстрее с удалением первого элемента: LinkedList или ArrayList?

Дальше вы узнаете ответ почему 🙂

Перед нами две реализации интерфейса List

ArrayList - это лист, внутри которого находится массив

LinkedList - это двунаправленный список, с указателем на начало и конец.

Как происходит удаление первого элемента из ArrayList:

1. Супер быстро находим первый элемент
2. Удаляем нужный элемент
3. И вот тут возникает проблема. Размер массива - это константа, получается, если хотим удалить первый элемент, то необходимо создать новый массив (но на 1 элемент меньше) и скопировать туда все элементы, кроме первого (потому что мы хотим его удалить).

Вот третий пункт - это очень тяжелая операция с вызовом метода System.arrayCopy

Как происходит удаление первого элемента из LinkedList:

1. Супер быстро находим первый элемент (потому что у нас есть указатель на начало и конец списка)
2. Удаляем первый элемент и заменяем ссылку на первый элемент.

Поэтому с удалением первого элемента LinkedList справится гораздо быстрее.

Кстати, у обоих будут проблемы, если мы захотим удалять из середины.

Можете попробовать протестировать это самостоятельно.

Если вам интересны такие видео, напишите об этом в комментариях.

#программирование #обучениепрограммированию #айти #айтикурсы #программированиеснуля