【发布时间】:2016-05-30 16:37:09
【问题描述】:
有没有办法在 Java 8 中构建一个使用索引进行迭代的 forEach 方法?理想情况下,我想要这样的东西:
params.forEach((idx, e) -> query.bind(idx, e));
我现在能做的最好的就是:
int idx = 0;
params.forEach(e -> {
query.bind(idx, e);
idx++;
});
【问题讨论】:
-
如果合并增量
query.bind(idx++, e);会缩短一行,但这就是我能想到的全部 -
另外,您不应该能够在该 lambda 中修改
idx。 -
@SotiriosDelimanolis 它实际编译
-
如果
idx是实例变量或其他东西,它会。如果您发布的代码位于方法/构造函数主体中,则不会。 -
@assylias 我投票重新提出这个问题,因为我不认为它与链接的问题完全相同。链接问题的发帖人想在流处理中获取索引,而这个问题的重点只是在(终端)
forEach方法中获取索引(基本上是为了替换传统的for循环哪个索引是手动操作的)。我认为我们不应该阻止在这里添加更多答案。实际上,我想提供一个适合这个问题的答案,但不适用于链接的问题。
标签: java for-loop foreach java-8