【发布时间】:2013-03-20 17:13:26
【问题描述】:
似乎一些非常常用的类没有官方基准,例如ArrayList。
我找不到有关插入或删除的运行时文档。与类似于 ArrayList 的 Python 的 List 相比,它有一个很好的运行时复杂性(参见上面的链接)。
This post,给出了一些关于从 ArrayList 中删除和复制元素的详细基准,但它仍然没有给出确切的复杂性分析。我正在处理一个需要极长数据(约 500,000 个数据点)的项目,所以我不能坐视不管,从 ArrayList 中删除或插入数据就像魔术一样在恒定时间内运行。 我在哪里可以找到这些信息?
【问题讨论】:
-
你为什么不从阅读
List实现如何在 java 中工作开始。然后使用您的用例运行您自己的基准测试。 -
看实现是最好的解决方案恕我直言
-
直接来自 javadoc:size、isEmpty、get、set、iterator 和 listIterator 操作在恒定时间内运行。添加操作在摊销常数时间内运行,即添加 n 个元素需要 O(n) 时间。所有其他操作都以线性时间运行(粗略地说)。与 LinkedList 实现相比,常数因子较低。
标签: java arraylist runtime complexity-theory