2016-11-14 46 views
-1

我正在創建庫存來存儲書籍信息。我已經完成了插入,刪除,搜索和其他功能。 然後,我看到練習要求有一條線說:什麼是使用Java的鏈接列表中的迭代器實現?

你也需要爲你的鏈表實現一個迭代器。

我在線查找迭代器並觀看了一些視頻,仍然無法理解迭代器是什麼以及如何實現到我的鏈表中。

任何人都可以幫到我嗎?謝謝。

回答

0

迭代器基本上允許您迭代集合。我不知道什麼叫:

您還需要實現一個Iterator您鏈表

但我認爲,它要的你遍歷使用迭代器和您的收藏像這樣做你的操作。

通過收集使用迭代器遍歷:

List<Object> list = new LinkedList<>(); 
Iterator<Object> it = list.iterator(); 
while(it.hasNext()){ 
    Object obj = it.next(); 
    // Do stuff 
} 

如果這不是你在找什麼,看來我missunderstood問題。

+0

是的我相信這是我需要做的。但是,問題是我創建了鏈表並使用Node完成了插入,刪除和其他功能。如何實現這個迭代器?好像我必須用迭代器重做整個鏈表。 – Acetamide

+0

我認爲這是它的意思。如果是這樣,它應該從一開始就明確指定。很高興我能幫上忙。 –

+0

問題在最後一句中講述了......我的講師只教了Node方法。如果我只是將它實現爲一個函數,比如只顯示列表函數,是否可能? – Acetamide

0

鏈接列表已經實現了Iterable接口(通過其他依賴),這表明它需要具有迭代器迭代器對象的iterator()方法,它允許您迭代整個列表。迭代是獲取下一個存在的元素,而不會將前一個元素保留在內存中。迭代器必須實現兩個方法 - 即next() - 如果存在,則獲取下一個元素,如果不存在則拋出noSuchElementException,而hasNext()則返回true或false。

在你的excersice中,我認爲你可能需要爲你自己的包裝器實現自定義Iterator實現到鏈接列表,以獲得關於如何構建Iterator以及它的目的是什麼的知識。

+0

我明白了,明白了。我會嘗試在我的程序中,看看它是否工作。謝謝! – Acetamide