2015-05-04 81 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