为什么列表迭代器指向 next() 和 previous() 方法返回的元素之间

Why does list iterator point in between the elements returned by next() and previous() methods

提问人:Sanku 提问时间:6/21/2017 最后编辑:halferSanku 更新时间:7/10/2017 访问量:408

问:

我正在浏览 JavaDocs,我发现 Java 的工作方式与我们预期的略有不同。ListIterator


我以为在我们使用 or 方法之后,光标指向相应的元素(即当前元素)。next()previous()

但是文档指出,它指向我们使用 或 时将返回的元素之间next()previous()

ListIterator 没有当前元素;它的光标位置始终位于调用 previous() 返回的元素和调用 next() 返回的元素之间。

我还在某处读到Java这样做是为了防止链表中的循环。但我无法掌握这一点。

java 迭代器 listiterator

评论

0赞 slipperyseal 6/21/2017
我假设这样,当元素添加到元素之前或之后时,它会将 ListIterator 光标保持在“更好的位置”。例如。如果光标介于 A 和 B 之间,然后在 A 之后添加 C,在 B 之前添加 D,则光标仍将位于 C 和 D 之间。A、C、光标、D、B,而不是 A 或 B
3赞 Louis Wasserman 6/21/2017
没有“获取当前元素”操作,只有 和 .为此,它总是在概念上指向“介于两者之间”。nextprevious
0赞 Sanku 6/21/2017
谢谢你的回复。我确实想知道这如何防止我们在使用链表时陷入无限循环?
0赞 Silvio Mayolo 7/10/2017
你还记得你在哪里读到它解决了一个无限循环问题吗?

答: 暂无答案