2011-08-24 86 views
0

我想了解如何在Java中實現鏈接列表。Java鏈接列表問題

我應該爲列表和節點創建單獨的鏈表類,還是我可以調用import java.util.LinkedList,還是我們都需要這兩個類?

此外,我們是否需要迭代器來打印列表?

回答

4

你在這裏問了幾個不同的問題。我想我已經他們都在這裏解決,所以讓我知道如果我錯過了一些東西:

  1. 如果你的目標是成爲一個鏈表的客戶,那麼你應該只使用java.util.LinkedList。這是一個對大多數應用程序都適用的預先編寫,優化的鏈接列表實現。

  2. 如果你的目標是實現一個鏈表,那麼你至少需要有一個類表示一個鏈表節點。根據您的使用情況,您可能還需要考慮創建一個像LinkedList這樣的類來封裝列表併爲其輸出一個漂亮的界面,以簡化客戶端的常見任務。通常,您可以通過將鏈接列表節點類型定義爲面向客戶端的鏈接列表中的嵌套類來完成此操作。

  3. 您可以使用自定義鏈接列表類和LinkedList集合的程序。一個用例是使用主要用作隊列實現的LinkedList程序,但爲其他任務需要專門拼接列表或將單個單元格從列表中拉出的其他任務使用公開的自定義鏈接列表。例如,如果您正在實施斐波那契堆,即使您在程序的其他地方使用LinkedList,也可能會實施自己的鏈接列表。這兩者不是相互排斥的。

  4. 我不確定你最後一個問題中的「迭代器」是什麼意思。如果你想打印鏈表的內容,最好的辦法是創建一個鏈接列表的第一個單元格的引用,然後不斷向前走,直到你到達列表的末尾。無論你是否將其包裝在java.util.Iterator對象中,都取決於你。創建一個實際的Iterator類型來完成迭代可能是最容易的,因爲它可以讓您與foreach循環和其他處理集合的API進行交互。

希望這有助於!

+0

謝謝。這更有意義。 – jlss4e

+0

@ jlss4e - 但你的問題仍然沒有:-)。你要修改它嗎?或者你只是想接受這個? –

+0

我不明白這個問題的問題。 – jlss4e