Iterator インスタンスで Iterator.next() または ListIterator.previous() を呼び出している Iterator.hasNext() または ListIterator.hasPrevious() の実装を報告します。 このような呼び出しはほぼ間違いなく誤りです。イテレーターの状態を変更するのは hasNext() のようなメソッドではなく、next() のようなメソッドであるべきだからです。

例:


  class MyIterator implements Iterator<Integer> {
    public boolean hasNext() {
      return next() != null;
    }
  }