我有一个实现Iterable
接口的MyList类。这是我的一个班级的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循环如何使用迭代器?
答案 0 :(得分:1)
增强的for循环适用于任何实现git gc
git repack -Ad
git prune
的类。它在内部调用该类实现的Iterable
方法以获取iterator()
,并使用Iterator
的{{1}}和hasNext()
方法迭代元素next()
。
答案 1 :(得分:1)
因为您的班级(MyList
)实施了Iterable
。因此,在内部,它会调用您的iterator()
方法,然后使用ListIterator的hasNext()
和next()
方法,它将在for
循环中进行迭代。