当前位置: 首页 > 知识库问答 >
问题:

带索引的Java 8 forEach[重复]

戚英逸
2023-03-14

有没有办法在Java8中构建一个使用索引迭代的foreach方法?理想情况下,我想要这样的东西:

params.forEach((idx, e) -> query.bind(idx, e));

我现在能做的就是:

int idx = 0;
params.forEach(e -> {
  query.bind(idx, e);
  idx++;
});

共有1个答案

谢嘉
2023-03-14

由于您正在迭代一个可索引的集合(列表等),我假定您可以使用元素的索引进行迭代:

IntStream.range(0, params.size())
  .forEach(idx ->
    query.bind(
      idx,
      params.get(idx)
    )
  )
;

得到的代码类似于使用经典的i++风格的for循环迭代列表,不同的是具有更容易的并行性(当然,假设对参数的并发只读访问是安全的)。

 类似资料:
  • 我找不到用当前对象和当前索引调用lamda的forEach方法。 不幸的是,这不是在java8中实现的,因此以下实现是不可能的: 为什么没有为我提供此功能的实用工具? 为什么不在java方法中实现? 有没有我没有找到的提供此功能的好实用工具?

  • 如果我定义一个像这样的分层索引数据框: 内容如下所示: 我知道如何提取与给定列对应的数据。例如。对于列: 如何提取符合以下标准集的数据: , , , column , , 列 和 、、列、以及从开始的所有列 是偶数 (顺便说一句,我做了不止一次rtfm,但我真的觉得难以理解。)

  • 鉴于此示例: 我想得到那些索引,其中col1: 预期结果将是一个向量。

  • 问题内容: 我有一个数组: 以及重复索引列表: 我想使用上面的索引添加到另一个数组: 操作: 给出结果:,因此显然未对from中的值求和。结果最好的方法是什么?我是否必须遍历索引? 问题答案: 为此numpy 1.8增加了减少: at(a,索引,b =无) 对’indices’指定的元素在操作数’a’上执行无缓冲的就地操作。对于加法ufunc,此方法等效于,不同之处在于对索引多次的元素累积结果。例

  • 如果包含重复元素,则返回false,在本例中,我希望知道中重复元素的索引,因为我需要在其他地方使用该索引。作为一个“链接”的集合,必须有某种方法来获取索引,但我在/API中找不到任何类似的东西。

  • 我正在尝试forEach中的方法引用 上面的工作很好,但我想让它更短的使用方法参考,但它给编译的问题,有什么办法使它发生?