gpt4 book ai didi

java - enhanced-for循环增强到什么程度呢?

转载 作者:行者123 更新时间:2023-11-30 06:18:37 28 4
gpt4 key购买 nike

我正在迭代 String 对象列表的元素一个接一个:

LinkedList list;

// add values to the list here


for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));

在这里,每次我在列表上调用 get() 时,列表都会从它的一端一直迭代到第 i 个元素——所以上面循环的复杂度是 O(n^2 ).

是 a.) 与上述增强型 for 循环相同,还是 b.) 是 for 循环将指针保持在其上次所在的位置,因此下面循环的复杂度为 O(n)?

for (String s:list)   
System.out.println(s);

如果上面的情况 (b)——我认为是——在列表上使用迭代器是否有任何优势。这是简单的迭代——没有回头路可走。编辑: ..我的列表操作是只读的。

TIA。

最佳答案

您所说的“增强的 for 循环”(它实际上称为 foreach 循环)在内部对任何可迭代对象(包括链表)使用迭代器。

换句话说就是O(n)

它确实通过使用整数并以这种方式对其进行迭代来处理数组循环,但这很好,因为它在数组中表现良好。

手动使用迭代器的唯一优点是,如果您需要在迭代时删除部分或全部元素。

关于java - enhanced-for循环增强到什么程度呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24274124/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com