Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Java: arraylist, access

Какая сложность доступа по индексу у ArrayList и LinkedList?

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

Короткий ответ

Доступ по индексу в ArrayList выполняется за O(1).
В LinkedList доступ по индексу занимает O(n).
Это связано с разным способом хранения элементов.
ArrayList использует массив.
LinkedList — цепочку связанных узлов.

Длинный ответ

Чтобы корректно оценивать сложность, важно понимать внутреннее устройство этих коллекций.

ArrayList

ArrayList хранит элементы:

  1. В непрерывном массиве.

  2. По индексам.

Доступ по индексу:

list.get(5);

Выполняется:

  1. Через вычисление смещения.

  2. Без обхода элементов.

Результат:

  • сложность O(1)

LinkedList

LinkedList состоит из:

  1. Узлов (Node)

  2. Ссылок на предыдущий и следующий элементы

При доступе по индексу:

  1. Начинается обход с начала или конца списка.

  2. Переход происходит по ссылкам.

  3. Количество шагов пропорционально размеру списка.

Результат:

  • сложность O(n)

Почему это важно

Разница особенно заметна:

  1. При частых операциях get(i).

  2. В циклах.

  3. При больших объемах данных.

Краткий вывод

ArrayList обеспечивает константный доступ по индексу, а LinkedList — линейный из-за последовательного обхода узлов.

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • Java

    Java

Ключевые слова

#arraylist

#access

Подпишись на Java Developer в телеграм