Вставка и удаление

Алгоритм вставки в конец списка:

Этот алгоритм используется для добавления нового элемента в конец списка.

val list = ArrayList<Int>()
list.add(5) // Вставка в конец списка

Сложность: O(1) - добавление в конец списка обычно происходит за постоянное время, так как не требуется перемещение других элементов.

Алгоритм вставки в середину списка

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

val list = LinkedList<Int>()
list.add(0, 10) // Вставка в середину списка по индексу 0

Алгоритм удаления из конца списка:

Этот алгоритм используется для удаления последнего элемента из списка.

val list = ArrayList<Int>()
list.removeAt(list.size - 1) // Удаление последнего элемента списка

Сложность: O(1) - удаление последнего элемента списка обычно происходит за постоянное время.

Алгоритм удаления из середины списка

Этот алгоритм используется для удаления элемента из середины списка. Сложность аналогична вставке в разные типы коллекций.

val list = LinkedList<Int>()
list.removeAt(0) // Удаление элемента из середины списка по индексу 0