当迭代时,数组(或ArrayList)和LinkedList表现相同吗?

35 浏览
0 Comments

当迭代时,数组(或ArrayList)和LinkedList表现相同吗?

这个问题已经在这里有答案了

何时在Java中使用LinkedList而不是ArrayList?

我知道数组在获取和设置时更快,而LinkedList在添加和删除元素方面更好,但是在迭代时呢?一个更“传统”的 for(i=0;i<intList.size();i++) 肯定会使LinkedList变慢,因为你需要每次获取索引i处的元素。但是如果我使用 for(int i : intList) 呢?在这种情况下它是如何工作的呢?例如:

LinkedList intList = new LinkedList();
/*
populate list...
*/
for (int i : intList) {
    //do stuff
}

我想象当遍历整个List时,没有必要获取特定元素,因此应该可以有一种循环实现,性能大致相同。虽然我不知道在这个例子中 for 是如何实现的,所以我不能确定这是否正确。

admin 更改状态以发布 2023年5月21日
0
0 Comments

它们都在使用 foreach 时以相同的速度 O(1) 进行迭代。要了解更多信息,请阅读这篇帖子

0