对于前向迭代:
for (int i=0; i<pathElements.length; i++){
T pathElem = pathElements[i];
.......
}
Run Code Online (Sandbox Code Playgroud)
我可以将它编码为foreach:
for(T pathElem : pathElements){
.......
}
Run Code Online (Sandbox Code Playgroud)
是否有一个开关,以便foreach可以反向迭代?
for (int i=pathElements.length-1; i>=0; i--){
T pathElem = pathElements[i];
.......
}
Run Code Online (Sandbox Code Playgroud)
foreach中是否存在反向迭代开关?
(如果没有,你不认为JDK 8,9等包含这个功能会是一个令人兴奋的想法吗?)
Mic*_*rdt 11
这根本不可能,因为foreach循环基于Iterable和Iterator接口,而那些没有反向迭代的概念.
使用番石榴:
for (T elem : Lists.reverse(Arrays.asList(array))) {
...
}
Run Code Online (Sandbox Code Playgroud)
迭代数组的反转视图作为列表.(所以只有一个不变的开销,你不会改变底层数组.)
(如果没有,你不认为JDK 8,9等包含这个功能会是一个令人兴奋的想法吗?)
我不确定在这样的功能中看到了什么.
现在,您可以简单地使用Collections.reverse已转换为列表的数组的副本,并使用Arrays.asList它进行迭代.
| 归档时间: |
|
| 查看次数: |
19186 次 |
| 最近记录: |