Java Reference
In-Depth Information
You may not know what class the iteratorForC is an instance of, but you do know
it satisfies the Iterator<String> interface, and so you know it has the methods in the
Iterator<T> interface. These methods are given in Display 16.12.
Display 16.13 contains a simple demonstration of using an iterator with a Hash-
Set<T> object. A HashSet<T> object imposes no order on the elements in the Hash-
Set<T> object, but the iterator imposes an order on the elements, namely the order in
which they are produced by next( ) . There are no requirements on this ordering. If
you run the program in Display 16.13 twice, the order of the elements' output will
almost certainly be the same each time. However, it would not be an error if they were
output in a different order each time the program ran.
If the collection used with an Iterator<T> imposes an order on its elements, such as an
ArrayList<T> does, then the Iterator<T> will output the elements in that order. If you
require an order with a HashSet<T> object then you may use the LinkedHashSet<T> class,
which uses an internal doubly linked list to store the items in the order that they are added.
Display 16.12 Methods in the Iterator<T> Interface
The Iterator<T> interface is in the java.util package.
All the exception classes mentioned are the kind that are not required to be caught in a catch
block or declared in a throws clause.
NoSuchElementException is in the java.util package, which requires an import statement if
your code mentions the NoSuchElementException class. All the other exception classes men-
tioned are in the package java.lang and so do not require any import statement.
public T next( )
Returns the next element of the collection that produced the iterator.
Throws a NoSuchElementException if there is no next element.
public boolean hasNext( )
Returns true if next( ) has not yet returned all the elements in the collection; returns false
otherwise.
public void remove( ) (Optional)
Removes from the collection the last element returned by next .
This method can be called only once per call to next . If the collection is changed in any way, other
than by using remove , the behavior of the iterator is not specified (and thus should be considered
unpredictable).
Throws IllegalStateException if the next method has not yet been called, or if the remove
method has already been called after the last call to the next method.
Throws an UnsupportedOperationException if the remove operation is not supported by this
Iterator<T> .
 
Search WWH ::




Custom Search