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.