在自定义LinkedList上使用ListIterator

时间:2011-04-27 14:58:09

标签: java listiterator

我有自己构建的自定义,通用,单链接列表。我可以添加,删除等到列表就好了。我想在我的类中实现Java ListIterator。我该如何开始呢?我需要在课堂上添加哪些方法?我在网上找到的只是在默认的Java LinkedList上使用ListIterator的例子,这对我来说并不好。谢谢!

5 个答案:

答案 0 :(得分:1)

您应该实施IteratorListIterator界面。

答案 1 :(得分:1)

您创建了第二个类(通常是链表的嵌套类),它实现了ListIterator接口的所有功能。请注意,某些函数(如addremove)是可选的 - 您可以抛出UnsupportedOperationException。您的链接列表类需要实现方法listIterator()listIterator(int)以返回第二个类的实例。

答案 2 :(得分:0)

查找ListIterator具有的方法。您需要确保它的版本具有相同的方法。

如果可以,请查找ListIterator使用的Interface,并实现该接口。

答案 3 :(得分:0)

如果它是一个单独链接的列表,实现ListIterator将是棘手的(如果不是不可能的话),因为它需要在两个方向上导航,你只能通过一次又一次地重新启动来实现。< / p>

要么使列表双向链接,要么必须在许多方法上抛出UnsupportedOperationException。 (或者以一半的方法使用O(n)表现)

答案 4 :(得分:0)

为了提高性能,您可以实施ListIterator并在迭代时保留列表的“向后”版本。这将模拟双向链表,但仅适用于迭代器。

但是,将链接列表实现为下面的双向链接列表可能更安全。