【发布时间】:2016-07-21 15:14:40
【问题描述】:
有一个类实现了接口Selector。我应该在其方法中使用iterator()。
private class SequenceSelector implements Selector {
private T obj = items.iterator().next();
public boolean end() { return !items.iterator().hasNext(); }
public T current() { return obj; }
public void next() { obj = items.iterator().next(); }
}
items 是一个 ArrayList。 obj 是一个值,以便在第一个 next() 使用之前保存第一个序列成员。
使用以下代码,程序进入一个无限循环,其中仅打印序列的第一个成员。
while(!selector.end()) {
System.out.print(selector.current() + " ");
selector.next();
}
为什么会发生这种情况?虽然我使用next() 方法,但迭代器并没有移动。
【问题讨论】: