- /*
- * @(#)Iterator.java 1.24 04/01/17
- *
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
- package java.util;
-
- /**
- * An iterator over a collection. Iterator takes the place of Enumeration in
- * the Java collections framework. Iterators differ from enumerations in two
- * ways: <ul>
- * <li> Iterators allow the caller to remove elements from the
- * underlying collection during the iteration with well-defined
- * semantics.
- * <li> Method names have been improved.
- * </ul><p>
- *
- * This interface is a member of the
- * <a href="{@docRoot}/../guide/collections/index.html">
- * Java Collections Framework</a>.
- *
- * @author Josh Bloch
- * @version 1.24, 01/17/04
- * @see Collection
- * @see ListIterator
- * @see Enumeration
- * @since 1.2
- */
- public interface Iterator<E> {
- /**
- * Returns <tt>true</tt> if the iteration has more elements. (In other
- * words, returns <tt>true</tt> if <tt>next</tt> would return an element
- * rather than throwing an exception.)
- *
- * @return <tt>true</tt> if the iterator has more elements.
- */
- boolean hasNext();
-
- /**
- * Returns the next element in the iteration. Calling this method
- * repeatedly until the {@link #hasNext()} method returns false will
- * return each element in the underlying collection exactly once.
- *
- * @return the next element in the iteration.
- * @exception NoSuchElementException iteration has no more elements.
- */
- E next();
-
- /**
- *
- * Removes from the underlying collection the last element returned by the
- * iterator (optional operation). This method can be called only once per
- * call to <tt>next</tt>. The behavior of an iterator is unspecified if
- * the underlying collection is modified while the iteration is in
- * progress in any way other than by calling this method.
- *
- * @exception UnsupportedOperationException if the <tt>remove</tt>
- * operation is not supported by this Iterator.
-
- * @exception IllegalStateException if the <tt>next</tt> method has not
- * yet been called, or the <tt>remove</tt> method has already
- * been called after the last call to the <tt>next</tt>
- * method.
- */
- void remove();
- }