Реализация списков: действительно ли LinkedList так плохо работает по сравнению с ArrayList и TreeList?
Взято изапашTreeList
доктор:
Следующая относительная статистика производительности является показательной для этого класса:
get add insert iterate remove
TreeList 3 5 1 2 1
ArrayList 1 1 40 1 40
LinkedList 5800 1 350 2 325
Это говорит:
LinkedList
редко является хорошим выбором реализации.TreeList
почти всегда является хорошей заменой, хотя он использует чуть больше памяти.
Мои вопросы:
Что сArrayList
add
, insert
, а такжеremove
времена сокрушительныхLinkedList
? Должны ли мы ожидать, например, что реальные случаи вставки и удаления очень благоприятствуютArrayList
?
Является ли этоTreeList
просто положи гвоздь в гроб почтенногоLinkedList
?
Я испытываю желание заключить, что они амортизируются или игнорируютсяArrayList
растут боли, и не приняли во внимание время вставки и удаления для элемента вLinkedList
это уже было найдено.