An Iterator is "valid" when it has additional elements, beyond its element index.
Said another way: After an Iterator is next()'d to its final element, the Iterator is no longer "valid".
Said another way: A "hasNext" check would simply return ::valid()