2

我有一个我自己构建的自定义、通用、单独的 LinkedList。我可以在列表中添加、删除等。我想为我的班级实现 Java ListIterator。我将如何开始这个?我需要在课堂上添加哪些方法?我在网上能找到的只是在默认的 Java LinkedList 上使用 ListIterator 的示例,这对我没有好处。谢谢!

4

5 回答 5

1

您应该实现IteratorListIterator接口。

于 2011-04-27T15:01:30.173 回答
1

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

于 2011-04-27T15:05:19.200 回答
0

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

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

于 2011-04-27T15:31:48.513 回答
0

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

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

于 2011-04-27T15:01:35.803 回答
0

如果它是一个单链接列表,实现ListIterator将是棘手的(如果不是不可能的话),因为它需要在两个方向上导航,你只能通过一遍又一遍地从头开始来实现。

要么使您的列表双链接,否则您将不得不UnsupportedOperationException使用很多方法。(或者在一半的方法中使用 O(n) 性能)

于 2011-04-27T15:11:04.040 回答