iteratorchain.java

来自「该原代码是实现机器学习中条件随机场模型的Java代码」· Java 代码 · 共 49 行

JAVA
49
字号
/**
 * 
 */
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 + =
减小字号Ctrl + -
显示快捷键?