GlueList与ArrayList与LinkedList

时间:2015-12-11 15:52:29

标签: java list arraylist data-structures linked-list

我知道有很多关于列表性能比较的主题。我可以向你保证这不是重复的。

我找到了名为GlueList的新数据结构,这让我想到了。

我对列表数据结构感到困惑(GlueListArrayListLinkedList)。

如何为给定的任务选择其中一个。

1 个答案:

答案 0 :(得分:1)

<强> GlueList

* “a”个已创建的节点。 节点数组的“b”大小。 *

get(int index)是O(1)~O(a)

add(E元素)是O(1)~O(a * b)

add(int index,E element)是O(1)~O(a * b)

remove(int index)是O(1)~O(a * b)

Iterator.remove()是O(1)~O(a * b)

ListIterator.add(E元素)是O(1)~O(a * b)

<强> 链表

get(int index)是O(n)

add(E元素)是O(1)

add(int index,E element)是O(n)

remove(int index)是O(n)

Iterator.remove()是O(1)

ListIterator.add(E元素)是O(1)

<强> 的ArrayList

get(int index)是O(1)

add(E元素)是O(1)摊销,但O(n)最坏情况,因为数组必须调整大小并复制

add(int index,E element)是O(n - index)摊销,但是O(n)最坏情况(如上所述)

remove(int index)是O(n - index)(即删除last是O(1))