有没有办法在Java8中构建一个使用索引进行迭代的forEach
方法?理想情况下,我想要这样的东西:
params.forEach((idx, e) -> query.bind(idx, e));
我现在能做的就是:
int idx = 0;
params.forEach(e -> {
query.bind(idx, e);
idx++;
});
有没有办法在Java8中构建一个使用索引进行迭代的forEach
方法?理想情况下,我想要这样的东西:
params.forEach((idx, e) -> query.bind(idx, e));
我现在能做的就是:
int idx = 0;
params.forEach(e -> {
query.bind(idx, e);
idx++;
});
由于您正在迭代一个可索引的集合(列表等),因此我假定您可以使用元素的索引进行迭代:
IntStream.range(0, params.size())
.forEach(idx ->
query.bind(
idx,
params.get(idx)
)
)
;
生成的代码类似于使用classic 的i++风格for循环迭代列表,只是更易于并行化(当然,假设对参数的并发只读访问是安全的).