2015-05-04 80 views
-2

您好我对Java很陌生,并且在为双链表创建一个嵌套的Iterator类时遇到了这个问题。运行测试程序时,在E next方法中出现此错误。 Iterator中下一个方法的目标是返回双链表中的下一个项目。双迭代链表上的Java迭代器

任何人都可以建议我的代码修复?任何帮助是极大的赞赏!

错误消息:在螺纹

异常 “主” 显示java.lang.NullPointerException在 dlinkedlist.Deque $ DoubleListIterator.next(Deque.java:51)

public E next() { 
     if (!hasNext()) throw new NoSuchElementException(); 
     last = current; 
     E value = current.item; 
     current = current.next; 
     index++; 
     return value; 
    } 
    public void remove() { throw new UnsupportedOperationException(); } 
    }// end class ListIterator 
+0

“下一个元素”是什么意思?前向迭代还是后向迭代?我相信你在这里需要一个前向迭代。 – Aakash

+0

你的线路51在哪里? – Lrrr

+0

是的,正向迭代,我该如何实现?我还需要一个迭代器的反向方法吗?我仍然有点困惑。请帮忙,谢谢! – Robert

回答

2

看来你的current对象为null。你能检查它吗?

+0

当前初始化为头,谢谢 – Robert

+0

它很可能是单向电流。当'head'被初始化时,不知道什么时候.... –

+0

那么,Deque'类是不完整的。它不包括大部分必需的方法来作为适当的出列。也许OP可以检查这里的算法http://basicdatastructures.blogspot.in/2007/12/dequeue-data-structure.html – Aakash