我有自己构建的自定义,通用,单链接列表。我可以添加,删除等到列表就好了。我想在我的类中实现Java ListIterator。我该如何开始呢?我需要在课堂上添加哪些方法?我在网上找到的只是在默认的Java LinkedList上使用ListIterator的例子,这对我来说并不好。谢谢!
答案 0 :(得分:1)
您应该实施Iterator或ListIterator界面。
答案 1 :(得分:1)
您创建了第二个类(通常是链表的嵌套类),它实现了ListIterator接口的所有功能。请注意,某些函数(如add
和remove
)是可选的 - 您可以抛出UnsupportedOperationException。您的链接列表类需要实现方法listIterator()
和listIterator(int)
以返回第二个类的实例。
答案 2 :(得分:0)
查找ListIterator具有的方法。您需要确保它的版本具有相同的方法。
如果可以,请查找ListIterator使用的Interface
,并实现该接口。
答案 3 :(得分:0)
如果它是一个单独链接的列表,实现ListIterator
将是棘手的(如果不是不可能的话),因为它需要在两个方向上导航,你只能通过一次又一次地重新启动来实现。< / p>
要么使列表双向链接,要么必须在许多方法上抛出UnsupportedOperationException
。 (或者以一半的方法使用O(n)表现)
答案 4 :(得分:0)
为了提高性能,您可以实施ListIterator
并在迭代时保留列表的“向后”版本。这将模拟双向链表,但仅适用于迭代器。
但是,将链接列表实现为下面的双向链接列表可能更安全。