Выбор ответа Junior Коллекции изнутри спрашивают часто обновлено
ArrayList или LinkedList
Вопрос
Какое утверждение про ArrayList и LinkedList верно?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: get(i) у ArrayList O(1), у LinkedList O(n). ArrayList хранит массив, доступ по индексу мгновенный, LinkedList идёт по узлам.
Варианты ответа
- Добавление в конец у ArrayList всегда O(n) из-за копирования
- LinkedList занимает меньше памяти, потому что нет запаса ёмкости
- Вставка в середину LinkedList по индексу O(1)
get(i)у ArrayList O(1), у LinkedList O(n)правильный ответ
Разбор
ArrayList хранит массив, доступ по индексу мгновенный, LinkedList идёт по узлам. Добавление в конец ArrayList амортизированно O(1): копирование при росте в 1.5 раза случается редко. LinkedList тратит больше памяти: каждый элемент это узел с двумя ссылками и заголовком объекта. Вставка по индексу в LinkedList O(n), потому что до места нужно дойти; O(1) только при вставке через уже стоящий на месте итератор.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.