oym*_*oym 12 java foreach for-loop
目前(从Java 6开始),使用Java的增强型for循环我不知道如何直接访问迭代器索引,而不是恢复到旧的索引for循环或使用外部计数器.
有没有计划(或者当前的方法)来实现这个"增强的增强"for循环,其中一个人能够访问循环的索引(甚至可能操纵它)?
作为可能需要这样做的示例,请考虑(这是来自实际的生产代码):
int i = 1;
for (final String action : actions) {
parameters.set(String.valueOf(i++), action);
}
Run Code Online (Sandbox Code Playgroud)
Yuv*_*dam 15
好吧,就像你说的,如果你必须有索引只需使用标准for循环,或手动更新计数器.
但重新考虑你的问题.为什么在for (Object o : list)循环中需要索引?
在整点使用增强环路的是抽象掉使用索引或迭代器的肮脏部分.
今天的大多数语言都没有在循环中提供这种功能.举个例子,Pythonic的方法是:
for index, val in enumerate(someList):
# ....
Run Code Online (Sandbox Code Playgroud)
不.使用外部变量.
为什么他们需要提供另一种通过索引访问元素的方法?
当您不需要元素的索引时,会创建增强的for循环作为快捷方式.它精简了一切.
如果仍然需要索引,则回退到常规for循环.这是他们在那里的原因之一.
| 归档时间: |
|
| 查看次数: |
15382 次 |
| 最近记录: |