By contract, any implementation of the java.util.Iterator.next()
method should throw a NoSuchElementException
exception
when the iteration has no more elements. Any other behavior when the iteration is done could lead to unexpected behavior for users of this
Iterator
.
public class MyIterator implements Iterator<String> { ... public String next() { if (!hasNext()) { return null; } // ... } }
public class MyIterator implements Iterator<String> { ... public String next() { if (!hasNext()) { throw new NoSuchElementException(); } // ... } }