Iterator.next() または ListIterator.previous() を呼び出している Iterator.hasNext() または ListIterator.hasPrevious() の実装を報告します。 このような呼び出しはほぼ間違いなく誤りです。イテレーターの状態を変更するのは hasNext() のようなメソッドではなく、next() のようなメソッドであるべきだからです。
例:
class MyIterator implements Iterator<Integer> {
public boolean hasNext() {
return next() != null;
}
}