Java 增强型 for 循环增强型

2022-09-04 06:24:57

目前(从Java 6开始),使用Java的增强型for循环,我不知道有什么方法可以直接访问迭代器索引,除了恢复到旧的索引for循环或使用外部计数器。

是否有计划(或者可能是当前的方法)来实现这种“增强增强”的for循环,在这种循环中,人们将能够访问循环的索引(甚至可能操纵它)?

作为可能需要这样做的示例,请考虑(这是来自实际的生产代码):

int i = 1;
for (final String action : actions) {
  parameters.set(String.valueOf(i++), action);
}

答案 1

好吧,就像你说的,如果你必须有一个索引,只需使用一个标准循环,或者手动更新一个计数器。for

但请重新思考您的问题。为什么在循环中需要一个索引?for (Object o : list)

使用增强型循环的全部意义在于抽象出使用索引或迭代器的令人讨厌的部分。

如今,大多数语言都不在循环中提供这种功能。举个例子,Pythonic的方法是:

for index, val in enumerate(someList):
    # ....

答案 2

哈哈使用外部变量。