Iteratorインターフェースを実装する内部クラスを実装する必要がある大学の割り当てがあります。イテレータは、単一リンクリストのスーパークラスで機能します。
現在、私の内部クラスは次のようになっています。
private class ListIterator implements Iterator<V>{
Node temp;
boolean nextCalled = false;
ListIterator(Node fo){
this.temp = fo;
}
@Override
public boolean hasNext() {
if(temp != null){
return true;
}
return false;
}
@Override
public V next() {
nextCalled = true;
return temp.getReprValue();
}
@Override
public void remove() {
if(nextCalled && hasNext()){
nextCalled = false;
removeElement(temp.getReprKey());
temp = temp.getNext();
}
}
}
私の問題は、リストが実際に空の場合でも、hasNext()メソッドがtrueを返すことです。他のすべてはうまくいくようです。私はおそらくどこかで論理的な欠陥を見落としていましたが、私はそれを自分で見つけることができません。