【发布时间】:2015-09-01 18:27:44
【问题描述】:
我有两个 Java 列表。一方面,我想从头开始迭代,另一方面,我想从头开始。我想为此使用增强的 for 循环,但我不确定该怎么做。 有什么建议吗?
【问题讨论】:
-
首先,您应该自己尝试。没那么复杂。
-
为什么需要使用增强的for循环?它使最常见的情况变得非常简单,但您仍然可以使用原始的 for 循环来处理所有其他不太常见的情况。
我有两个 Java 列表。一方面,我想从头开始迭代,另一方面,我想从头开始。我想为此使用增强的 for 循环,但我不确定该怎么做。 有什么建议吗?
【问题讨论】:
您可以创建列表的副本并将其反转:
List<T> listCopy = new ArrayList<T>(list);
Collections.reverse(listCopy);
for(T t : listCopy) {
...
}
您也可以使用ListIterator(增强的for循环在后台使用Iterator):
一个列表迭代器,允许程序员在任一方向遍历列表。
【讨论】:
ListIterator。无论如何,我认为您应该编写 Guava 解决方案作为答案:)
不,您不能使用增强型 For 循环从列表的末尾迭代到开头。当您希望按从前到后的顺序逐步遍历元素时,应该使用增强的 For 循环来简化。在任何其他情况下,“标准”For-Loop 是最优化的。
【讨论】: