【发布时间】:2013-09-08 23:21:37
【问题描述】:
我在这里阅读了很多问题,这些问题讨论了在 Java 中使用 ArrayLists 与 LinkedLists 的成本。到目前为止,我见过的最有用的一个是:When to use LinkedList over ArrayList?。
我想确保我理解正确。
在我当前的用例中,我有多种情况将对象存储在 List 结构中。每次运行时列表中的对象数量都会发生变化,并且从不需要随机访问列表中的对象。基于这些信息,我选择使用 LinkedLists 和 ListIterators 来遍历列表的全部内容。
例如,我的代码可能如下所示:
for (Object thisObject : theLinkedList) {
// do something
}
如果这是一个错误的选择,请帮助我了解原因。
我目前的理解是,使用迭代解决方案遍历 LinkedList 中的整个对象列表会产生 O(n) 成本。由于没有对列表的随机访问(例如,需要获取第 3 项),我目前的理解是,这与遍历 ArrayList 的内容并请求每个元素的索引基本相同。
假设我事先知道要存储在列表中的对象的数量,我目前的想法是最好将 ArrayList 初始化为适当的大小并完全切换到该结构而不使用 ListIterator。这个逻辑合理吗?
一如既往,我非常感谢大家的意见!
【问题讨论】:
标签: java data-structures complexity-theory big-o