件数指定Iterator
前回の記事 [id:gakuzo:20090227:1235728271] で書いた take ですが、これも Iterator にした方が、遅延評価っぽくていいかもしれません。
import java.util.Iterator; public class FixedLengthIterator<T> implements Iterator<T> { private int index; private int length; private Iterator<? extends T> base; public FixedLengthIterator(int length, Iterator<? extends T> base) { this.length = length; this.base = base; } public boolean hasNext() { return index < length && base.hasNext(); } public T next() { index++; return base.next(); } public void remove() { base.remove(); } }