LinkedList vs ArrayList cost
我在这里读了很多问题,讨论在Java中使用ArrayLists和LinkedLists的成本。到目前为止我见过的最有用的一个是:何时使用LinkedList over ArrayList?。
我想确定我正确理解。
在我目前的用例中,我有多种情况,我将对象存储在List结构中。每次运行时列表中的对象数都会更改,并且永远不需要随机访问列表中的对象。根据这些信息,我选择使用LinkedLists和ListIterators来遍历列表的整个内容。
例如,我的代码可能如下所示:
1 2 3 |
如果这是一个糟糕的选择,请帮助我理解原因。
我目前的理解是,使用迭代解决方案遍历LinkedList中的整个对象列表会产生O(n)成本。由于没有对列表的随机访问(例如,需要获取项目#3),我目前的理解是这与循环遍历ArrayList的内容并使用索引请求每个元素基本相同。
假设我事先知道要在列表中存储的对象数,我当前的想法是,最好将ArrayList初始化为适当的大小,并完全切换到该结构而不使用ListIterator。这个逻辑是否合理?
一如既往,我非常感谢大家的投入!
对
如果保证总会有固定数量的元素,并且在随机位置不会有插入和删除,那么原始数组可能是一个不错的选择,因为它非常快且针对这种情况进行了优化。
也就是说,您对
希望这可以帮助!