所以我试图反映Java ListIterator
的功能。我唯一能解决问题的方法就是让previous()
方法正常工作。
这就是我所拥有的。
public ListIterator300<Item> listIterator() {
return new ListIterator300<Item>() {
private Node<Item> n = first;
public boolean hasNext() {
return n.next != last;
}
public Item next() {
n = n.next;
return n.data;
}
public void remove() {
}
public boolean hasPrevious() {
return n.previous != first;
}
public Item previous() {
n = n.previous;
return n.data;
}
};
}
因此,我遇到的问题是使用previous()
和next()
方法,当随后调用时,返回相同的数字。现在我已经读过内置的ListIterator
使用了一个游标。我有什么一般的提示可以将它实现到我的代码中吗?
例如
[1 2 3 4]
next() -> 1
previous() -> 1
next() -> 1
next() -> 2
答案 0 :(得分:1)
而不是检查:
n.next != last;
检查:
n != last;
和以下相同:
n.previous != first;
将其替换为:
n != first;
你明白为什么吗?