An Iterator is a structure that permits iteration over elements of type T.
Any class with matching hasNext() and next() fields is considered an Iterator
and can then be used e.g. in for-loops. This makes it easy to implement
custom iterators.
See also:
Fields
next():T
Returns the current item of the Iterator and advances to the next one.
This method is not required to check hasNext() first. A call to this
method while hasNext() is false yields unspecified behavior.
On the other hand, iterators should not require a call to hasNext()
before the first call to next() if an element is available.