2011-08-24 180 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