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

带索引的Java8 forEach[重复]

劳高爽
2023-03-14

我找不到用当前对象和当前索引调用lamda的forEach方法。

不幸的是,这不是在java8中实现的,因此以下实现是不可能的:

List<String> list = Arrays.asList("one", "two");
list.forEach((element, index) -> System.out.println(String.format("[%d] : %s", index, element)));
List<String> list = Arrays.asList("one", "two");

int index = 0;
for (String element : list) {
   System.out.println(String.format("[%d] : %s", index++, element));
}
public static <T> void forEach(@NonNull Iterable<T> iterable, @NonNull ObjIntConsumer<T> consumer) {
    int i = 0;
    for (T t : iterable) {
        consumer.accept(t, i++);
    }
}
List<String> list = Arrays.asList("one", "two");
forEach(list, (element, index) -> System.out.println(String.format("[%d] : %s", index, element)));
  • 为什么没有为我提供此功能的实用工具?
  • 为什么不在javaiterable.foreach方法中实现?
  • 有没有我没有找到的提供此功能的好实用工具?

共有1个答案

阎璞瑜
2023-03-14

如果要使用foreach,可以使用intstream,如下所示:

IntStream.range(0, list.size())
        .forEach(index -> System.out.println(String.format("[%d] : %s", index, list.get(index))));
 类似资料:
  • 有没有办法在Java8中构建一个使用索引迭代的方法?理想情况下,我想要这样的东西: 我现在能做的就是:

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

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

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

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

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