【发布时间】:2010-11-29 21:45:39
【问题描述】:
目前(从 Java 6 开始),使用 Java 的增强型 for 循环,除了恢复到旧的索引 for 循环或使用外部计数器之外,我不知道有任何方法可以直接访问迭代器索引。
是否有计划(或者可能是当前的方式)来实现这种“增强的增强型”for 循环,以便能够访问循环的索引(甚至可能操纵它)?
作为可能需要的示例,请考虑(这是来自实际生产代码):
int i = 1;
for (final String action : actions) {
parameters.set(String.valueOf(i++), action);
}
【问题讨论】:
-
是的,我一直不明白他们为什么称它为“增强”。将其称为“简化的 for 循环”会更好。
-
如果在 Python 中有类似 enumerate() 之类的东西会很不错,它可以让你遍历索引和元素:for i, element in enumerate(list): print i, element跨度>
-
好的,那么看来答案在这两个方面都是“否”(已知的实施计划/jsr,或者当前的执行方式)。那些说它违背了它的介绍的“哲学”的人——我肯定明白你来自哪里——我只是发现自己处于我想要这种能力而不必求助于冗长的替代方案的情况下。
-
Java 5.0 中引入了增强的 for 循环。 ;)
-
如回答所问,什么情况下需要索引?你能提出这个问题吗?