|FSIterator< T >||copy ()|
|T||get () throws NoSuchElementException|
|void||moveTo (FeatureStructure fs)|
Iterator over feature structures.
This iterator interface extends java.util.Iterator, and supports the standard
next methods. If finer control, including reverse iteration, is needed, see below.
Note: do not use the APIs described below *together* with the standard Java iterator methods
hasNext(). On any given iterator, use either the one or the other, but not both together. Otherwise,
next/hasNext may exhibit incorrect behavior.
FSIterator interface introduces the methods get(), moveToNext(), moveToPrevious() methods. With these methods, retrieving the current element (
get) is a separate operation from moving the iterator (
moveToPrevious. This makes the user's code less compact, but allows for finer control.
get method is defined to return the same element that a call to
next() would return, but does not advance the iterator.
Implementations of this interface are not required to be fail-fast. That is, if the iterator's collection is modified, the effects on the iterator are in general undefined. Some collections may handle this more gracefully than others, but in general, concurrent modification of the collection you're iterating over is a bad idea.
If the iterator is moved past the boundaries of the collection, the behavior of subsequent calls to moveToNext() or moveToPrevious() is undefined. For example, if a previously valid iterator is invalidated by a call to moveToNext(), a subsequent call to moveToPrevious() is not guaranteed to set the iterator back to the last element in the collection. Always use moveToLast() in such cases.