【问题标题】:Enhanced for loop and iterator in JavaJava 中增强的 for 循环和迭代器
【发布时间】:2015-11-03 13:59:33
【问题描述】:

我有一个 MyList 类,它实现了Iterable 接口。这是我的一个课程中的toString() 方法:

public String toString() {
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < 4; i++) {
        // First example using iterator
        for (Iterator<Integer> itr = array[i].iterator(); itr.hasNext();) {
            sb.append(itr.next() + " ");
        }
        // And the same result using enhanced for loop
        for (int val : array[i]) {
            sb.append(val + " ");
        }
    }
    return sb.toString();
}

这个循环遍历我列表中的节点:

for (int val : array[i]) {
    sb.append(val + " ");
}

这个for循环如何使用迭代器?

【问题讨论】:

    标签: java for-loop iterator


    【解决方案1】:

    因为你的类 (MyList) 实现了Iterable。所以在内部它会调用你的 iterator() 方法,然后使用 ListIterator 的 hasNext()next() 方法,它将在 for 循环中迭代。

    参考:Using Enhanced For-Loops with Your Classes

    【讨论】:

      【解决方案2】:

      增强的 for 循环适用于任何实现 Iterable 的类。它在内部调用该类实现的iterator() 方法以获得Iterator,并使用IteratorhasNext()next() 方法对Iterator 的元素进行迭代。

      【讨论】:

        猜你喜欢
        • 2023-03-30
        • 2016-01-05
        • 2010-09-22
        • 1970-01-01
        • 2014-11-16
        • 2013-06-14
        • 2011-01-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多