@Override public E next() { prepareNextValue(); E element = nextElement; if(element==null) throw new NoSuchElementException(); nextElement = null; // Consume value return element; }
@Override public boolean hasNext() { prepareNextValue(); return nextElement!=null; }