OneShotIterator.java

package eu.javaexperience.collection.iterator;

import java.util.Iterator;

public class OneShotIterator<E> implements Iterator<E>
{
	protected final E elem;
	protected boolean inquired = false;
	
	public OneShotIterator(E element)
	{
		this.elem = element;
	}

	@Override
	public boolean hasNext()
	{
		if(inquired)
			return false;
		else
		{
			inquired = true;
			return true;
		}
	}

	@Override
	public E next()
	{
		return elem;
	}

	@Override
	public void remove()
	{
		throw new UnsupportedOperationException();		
	}
}