Sobes.tech
Back to questions
Junior — Middle
66

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

Answer from AI

sobes.tech AI

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

В ArrayList удаление последнего элемента тоже обычно быстрое — амортизированное O(1), так как просто уменьшается размер списка. Однако, если рассматривать строго, то LinkedList гарантирует постоянное время удаления с конца, а ArrayList — амортизированное.

Пример:

ArrayList<Integer> arrayList = new ArrayList<>();
LinkedList<Integer> linkedList = new LinkedList<>();

// Удаление последнего элемента
arrayList.remove(arrayList.size() - 1); // амортизированное O(1)
linkedList.removeLast(); // O(1)