2014-09-26 45 views
0

我想从最后开始向后遍历Java链接列表。 Java的LinkedList有一个方法descendingIterator(),它返回一个向后的迭代器。 但是,我也希望能够在迭代过程中动态地将常量插入到列表中。 descendingIterator()方法不返回ListIterator,所以它不能执行插入。 是否有任何内置的方式来做到这一点在Java中,或者我只需要做我自己的实现?链接列表使用插入降序迭代

+0

当然,我可以调用LinkedList#listIterator()并将它传递给列表的长度,但我相信这会在线性时间内运行,这似乎效率低下。 – user2097749 2014-09-26 01:27:42

回答

0
list.listIterator(list.size()-1); 

可能是你在找什么。按照documentation,它不应该以线性时间运行:

所有操作的执行是可以预期的双向链接 列表。索引到列表中的操作将遍历从开始或结束的 列表,以较接近指定索引为准。

所以你可以认为LinkedList可以直接访问它的最后一个元素。

参见:https://stackoverflow.com/a/2765764/734151

你可能要检查的执行时间,以验证这一点。