Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про Java: list, array, linked list

В чём разница между ArrayList и LinkedList? Какие операции эффективны для каждой из них?

Вопрос проверяет понимание различий в структуре данных и производительности операций для двух реализаций списков в Java.

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

  • ArrayList — массив с динамическим размером. Эффективен для доступа по индексу (O(1)), но вставка/удаление в середину медленные (O(n)).

  • LinkedList — двусвязный список. Быстрая вставка/удаление (O(1)), но доступ по индексу медленный (O(n)).

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

Структура

  • ArrayList: динамический массив.

  • LinkedList: узлы с ссылками на предыдущий/следующий элемент.

ArrayList

  • доступ по индексы - O(1)

  • вставка в конец - O(1) (амортиз.)

  • вставка в середину - O(n)

  • удаление - O(n)

LinkedList

  • доступ по индексы - O(n)

  • вставка в конец - O(1)

  • вставка в середину - O(n) (если есть итератор)

  • удаление - O(1) (если есть итератор)

List<String> arrayList = new ArrayList<>();  // Лучше для частого чтения
List<String> linkedList = new LinkedList<>(); // Лучше для частой вставки/удаления

Когда использовать:

  • ArrayList: если нужен быстрый доступ по индексу (например, кэширование).

  • LinkedList: если часто изменяется структура (например, очередь).

Уровень

  • Рейтинг:

    2

  • Сложность:

    6

Навыки

  • Java

    Java

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

#list

#array

#linked list

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