the next element in the iteration. Calling this method repeatedly until the hasNext() method returns
false will return each element in the underlying collection exactly once.
the next element in the iteration, but without removing it, so the next call to next() or peek()
will return the same element as returned by the current call to peek().