在迭代器上调试 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),因此当您尝试打印最后一个元素时,您实际上已经超出了您的列表。
您好,我是 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),因此当您尝试打印最后一个元素时,您实际上已经超出了您的列表。