Вставка и удаление
Этот алгоритм используется для добавления нового элемента в конец списка.
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