package com.googlecode.totallylazy.iterators; import java.util.Iterator; public class PoppingIterator<T> implements Iterator<T> { private final Iterator<? extends T> iterator; public PoppingIterator(Iterator<? extends T> iterator) { this.iterator = iterator; } @Override public boolean hasNext() { return iterator.hasNext(); } @Override public T next() { try { return iterator.next(); } finally { remove(); } } @Override public void remove() { iterator.remove(); } }