编写一个镜像Java内置Iterator的ListIterator

时间:2016-05-25 00:12:57

标签: java list 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

1 个答案:

答案 0 :(得分:1)

而不是检查:

n.next != last;

检查:

n != last;

和以下相同:

n.previous != first;

将其替换为:

n != first;

你明白为什么吗?