![](/img/trans.png)
[英]Is iterator's rule of Iterator and Listiterator different from each other?(Java)
[英]Writing a ListIterator that mirrors Java's built in Iterator
因此,我试图镜像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
而不是检查:
n.next != last;
校验:
n != last;
和相同的:
n.previous != first;
替换为:
n != first;
你明白为什么吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.