在迭代器上调试 Java

Debugging on Iterator Java

您好,我是 Java 的新手,在为 DoublyLinkedList 编写嵌套迭代器 class 时遇到了这个问题。 运行 测试程序时出现此错误。谁能发现我的迭代器 class 中的任何错误?非常感谢任何帮助!

        public E next() {
            if (!hasNext()) throw new NoSuchElementException();
            last = current;
            E value = current.item;
            current = current.next; 
            index++;
            return value;
current = current.next;

对于最后一次迭代,current 将设置为 null,因为上一个实例的 next 值为 null。这可能是迭代器读取空值的原因。

在您的 Iterable 中,您将 current 的初始值设置为第二个元素 (current = head.next),因此当您尝试打印最后一个元素时,您实际上已经超出了您的列表。