为什么使用迭代器而不是for循环?

时间:2018-01-26 01:40:08

标签: java arrays iterator

我正在查看此代码:https://www.geeksforgeeks.org/bridge-in-a-graph/

class MyViewController: UIViewController {
    var datePickerView: UIPickerView?

    func setUpPickerView() {
        self.datePickerView = UIDatePicker()
        ...
    }
}

为什么作者不使用for循环?这不一样吗?

Iterator<Integer> i = adj[u].iterator();
while (i.hasNext())
{
    int v = i.next();  // v is current adjacent of u
    ...

1 个答案:

答案 0 :(得分:6)

在Java中,Iterator<E>的一个用途是在迭代时从Collection<E>中删除元素。如果您在使用Collection进行迭代时尝试从同一个for (int v : adj[u])删除相同的元素,则会抛出ConcurrentModificationException

如果没有删除任何元素,那么是,两种语法选择就足够了。

至于为什么该文章的作者没有使用for-loop,你必须问他们。他们的代码似乎没有从循环中的LinkedList<Integer>中删除任何元素,因此很可能是潜意识的选择。

相关问题