【发布时间】:2014-06-17 22:10:49
【问题描述】:
我正在迭代 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。
【问题讨论】:
-
....现在我再次阅读了您的问题,什么也没有。我会删除。我很抱歉我失明了。
标签: java list foreach iterator time-complexity