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(); } ... } }