我有一个我自己构建的自定义、通用、单独的 LinkedList。我可以在列表中添加、删除等。我想为我的班级实现 Java ListIterator。我将如何开始这个?我需要在课堂上添加哪些方法?我在网上能找到的只是在默认的 Java LinkedList 上使用 ListIterator 的示例,这对我没有好处。谢谢!
问问题
2325 次
5 回答
1
您应该实现Iterator或ListIterator接口。
于 2011-04-27T15:01:30.173 回答
1
创建第二个类(通常是链表的嵌套类),它实现了 ListIterator 接口的所有功能。请注意,某些函数(如add
和remove
)是可选的——您可以只抛出 UnsupportedOperationException。您的链表类需要实现这些方法listIterator()
并listIterator(int)
返回您的第二个类的实例。
于 2011-04-27T15:05:19.200 回答
0
为了提高性能,您可以ListIterator
在迭代时实现并保留列表的“向后”版本。这将模拟一个双向链表,但仅适用于迭代器。
但是,将链表实现为下面的双向链表可能更安全。
于 2011-04-27T15:31:48.513 回答
0
查找 ListIterator 具有的方法。您需要确保您的版本具有相同的方法。
如果可以,请查找Interface
ListIterator 使用的接口,并实现该接口。
于 2011-04-27T15:01:35.803 回答
0
如果它是一个单链接列表,实现ListIterator
将是棘手的(如果不是不可能的话),因为它需要在两个方向上导航,你只能通过一遍又一遍地从头开始来实现。
要么使您的列表双链接,否则您将不得不UnsupportedOperationException
使用很多方法。(或者在一半的方法中使用 O(n) 性能)
于 2011-04-27T15:11:04.040 回答