小编典典

在java中以相反的顺序遍历列表

all

我正在迁移一段代码以使用泛型。这样做的一个论点是 for 循环比跟踪索引或使用显式迭代器要干净得多。

在大约一半的情况下,现在使用索引以相反的顺序迭代列表(一个 ArrayList)。

有人可以建议一种更清洁的方法(因为我不喜欢indexed for loop使用集合时),尽管它确实有效?

 for (int i = nodes.size() - 1; i >= 0; i--) {
    final Node each = (Node) nodes.get(i);
    ...
 }

注意: 我不能在 JDK 之外添加任何新的依赖项。


阅读 70

收藏
2022-05-16

共1个答案

小编典典

试试这个:

// Substitute appropriate type.
ArrayList<...> a = new ArrayList<...>();

// Add elements to list.

// Generate an iterator. Start just after the last element.
ListIterator li = a.listIterator(a.size());

// Iterate in reverse.
while(li.hasPrevious()) {
  System.out.println(li.previous());
}
2022-05-16