Более эффективно удалить элементы из ArrayList или LinkedList? - PullRequest
0 голосов
/ 24 июня 2009

Теоретически, более эффективно удалять элементы из ArrayList или LinkedList?

Ответы [ 2 ]

10 голосов
/ 24 июня 2009

«проще» (то есть более эффективно) удалить их из LinkedList, поскольку удаление из ArrayList требует перемещения всех последующих элементов на новую позицию в списке - все последующие элементы массива должно быть назначено новое значение. В случае связанного списка необходимо переназначить только один указатель (или два с двусвязным списком).

5 голосов
/ 24 июня 2009

Ну, удаление элемента из списка (с двойной связью) - O (1). Но удаление из массива потребует, чтобы оставшиеся элементы были сдвинуты на одну позицию в массиве, что равно O (n).

Тем не менее, получение определенного элемента в списке по индексу - это O (n), тогда как получение определенного элемента в массиве по индексу - это O (1).

Итак, для фактического удаления LinkedList будет лучше. Больше информации о массиве Array против LinkedList здесь .

...