Java GlueList、ArrayList和LinkedList之间的性能差异

Java GlueList、ArrayList和LinkedList之间的性能差异,java,list,arraylist,data-structures,linked-list,Java,List,Arraylist,Data Structures,Linked List,我知道有很多关于列表性能比较的主题。我可以向你保证这不是重复的主题 我发现了一种叫做的新数据结构,它让我思考 我对列表数据结构(、和)感到困惑 如何为给定任务选择其中一项。GlueList * “a”个已创建的节点数。 节点数组的“b”大小。 * get(int-index)是O(1)~O(a) add(E元素)是O(1)~O(a*b) add(int索引,E元素)是O(1)~O(a*b) 移除(int索引)是O(1)~O(a*b) 迭代器.remove()是O(1)~O(a*b) add(E元

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

我发现了一种叫做的新数据结构,它让我思考

我对列表数据结构(、和)感到困惑

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

GlueList

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

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

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

add(int索引,E元素)是O(1)~O(a*b)

移除(int索引)是O(1)~O(a*b)

迭代器.remove()是O(1)~O(a*b)

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

LinkedList

get(int索引)是O(n)

添加(E元素)为O(1)

add(int索引,E元素)是O(n)

删除(整型索引)为O(n)

迭代器.remove()是O(1)

add(E元素)是O(1)

ArrayList

get(int索引)是O(1)

add(E元素)是O(1)摊销的,但O(n)是自数组必须调整大小和复制以来的最坏情况

add(整数指数,E元素)是O(n-指数)摊销,但O(n)是最坏情况(如上所述)


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

对于我个人来说,尝试通过技术架构委员会的批准流程强制新的第三方产品是不值得的,因此我几乎在所有情况下都坚持使用核心Java类。