编程语言
首页 > 编程语言> > java – 如何增强增强for for循环?

java – 如何增强增强for for循环?

作者:互联网

我正在迭代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).

是一个.)与上面的增强型for循环相同,或者b.)是for循环保持指针最后的位置,因此下面循环的复杂性是O(n)?

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

如果上面的情况(b) – 我认为是 – 在列表中使用迭代器是否有任何优势.这是一个简单的迭代 – 没有回头和前后.编辑:..我的列表操作是只读的.

TIA.

解决方法:

你称之为“增强for循环”(它实际上称为foreach循环)在内部使用迭代器来处理任何可迭代的东西 – 包括链表.

换句话说,它是O(n)

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

手动使用迭代器的唯一好处是,如果需要在迭代时删除部分或全部元素.

标签:java,list,foreach,time-complexity,iterator
来源: https://codeday.me/bug/20191008/1873191.html