Back to questions
СБЕР
Junior — Middle
59
При добавлении элемента в конец коллекции, какая из структур данных — ArrayList или LinkedList — работает быстрее?
Companies where asked
Answer from AI
sobes.tech AI
При добавлении элемента в конец коллекции:
-
ArrayList обычно работает быстрее, если в массиве достаточно места, потому что добавление происходит за амортизированное время O(1) — элемент просто записывается в следующую свободную ячейку.
-
Если массив заполнен, происходит расширение (копирование в новый массив), что занимает больше времени.
-
LinkedList всегда добавляет элемент в конец за O(1), так как просто создаётся новый узел и меняются ссылки.
На практике, для добавления в конец, если не учитывать расширение массива, ArrayList быстрее из-за лучшей локальности данных и меньших накладных расходов на управление узлами. LinkedList выгоден, если часто нужны вставки/удаления в середине списка.
Пример:
ArrayList<Integer> arrayList = new ArrayList<>();
arrayList.add(10); // Быстро, если места достаточно
LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(10); // Всегда быстро, но больше накладных расходов