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