package com.googlecode.totallylazy.iterators; import java.util.Iterator; import java.util.NoSuchElementException; public class InitIterator<T> extends StatefulIterator<T> { private final PeekingIterator<T> peekingIterator; public InitIterator(Iterator<? extends T> iterator) { this.peekingIterator = new PeekingIterator<T>(iterator); } @Override protected T getNext() throws Exception { T next = peekingIterator.next(); try { peekingIterator.peek(); return next; } catch (NoSuchElementException ex){ return finished(); } } }