0
我想从最后开始向后遍历Java链接列表。 Java的LinkedList有一个方法descendingIterator(),它返回一个向后的迭代器。 但是,我也希望能够在迭代过程中动态地将常量插入到列表中。 descendingIterator()方法不返回ListIterator,所以它不能执行插入。 是否有任何内置的方式来做到这一点在Java中,或者我只需要做我自己的实现?链接列表使用插入降序迭代
我想从最后开始向后遍历Java链接列表。 Java的LinkedList有一个方法descendingIterator(),它返回一个向后的迭代器。 但是,我也希望能够在迭代过程中动态地将常量插入到列表中。 descendingIterator()方法不返回ListIterator,所以它不能执行插入。 是否有任何内置的方式来做到这一点在Java中,或者我只需要做我自己的实现?链接列表使用插入降序迭代
list.listIterator(list.size()-1);
可能是你在找什么。按照documentation,它不应该以线性时间运行:
所有操作的执行是可以预期的双向链接 列表。索引到列表中的操作将遍历从开始或结束的 列表,以较接近指定索引为准。
所以你可以认为LinkedList可以直接访问它的最后一个元素。
参见:https://stackoverflow.com/a/2765764/734151
你可能要检查的执行时间,以验证这一点。
当然,我可以调用LinkedList#listIterator()并将它传递给列表的长度,但我相信这会在线性时间内运行,这似乎效率低下。 – user2097749 2014-09-26 01:27:42