📄 iteratorchain.java
字号:
/**
*
*/
package lcrf.stuff;
import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
/**
* @author bgutmann
*
*/
public class IteratorChain<T> implements Iterator<T> {
private int actualiterator;
private List<Iterator<T>> iterators;
public IteratorChain(List<Iterator<T>> iterators) {
assert iterators != null;
this.iterators = iterators;
actualiterator = 0;
while (actualiterator < iterators.size() && !iterators.get(actualiterator).hasNext()) {
actualiterator++;
}
}
public boolean hasNext() {
return actualiterator < iterators.size();
}
public T next() {
if (actualiterator >= iterators.size()) {
throw new NoSuchElementException();
}
T result = iterators.get(actualiterator).next();
while (actualiterator < iterators.size() && !iterators.get(actualiterator).hasNext()) {
actualiterator++;
}
return result;
}
public void remove() {
throw new UnsupportedOperationException();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -