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

java 8中的循环索引[重复]

胡玉书
2023-03-14

有没有一种方法可以使用流来编写这段代码:

    for (int i = 0; i < list.size(); i ++) {
        if (i % 1000 == 0) {
           doSomething();
        }
        doSomethingElse(list.get(i));
   }

共有1个答案

宰父俊民
2023-03-14

您可以使用IntStream来实现...但你为什么要呢?它看起来与您编写的内容基本相同,但由于intstream而有一些开销,而这里并不真正需要它。

IntStream.range(0, list.size())
         .forEach(i -> {
           if (i % 1000 == 0) {
             doSomething();
           }
           doSomethingElse(list.get(i));
         });

如果不知道dosomethingdosomethingelse做什么,就很难提出更好的建议。也许你想(或者应该?)事先对列表进行分区?

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

  • 问题内容: 如何在如下所示的循环中访问索引? 我想得到以下输出: 当我使用循环遍历它时,如何访问循环索引(在这种情况下为到)? 问题答案: 使用其他状态变量,例如索引变量(通常在或等语言中使用),被认为是非的。 更好的选择是使用 中都提供的内置函数:

  • 问题内容: 在以下语法不再有效的Swift 3.0中,您将如何表达递减索引循环? 问题答案: 这是一种更简单(更快速)的方法。

  • 我想知道,在这种情况下,我们可以使用增强的for而不是常规的for循环 在这种情况下,我可以使用增强的for吗?

  • 当我试图从网上删除SEC的文件时,奇怪的事情不断发生。我在Python3中执行的web刮取代码在CIK(公司的唯一归档ID)列表中循环。这是代码中断的地方(在代码的早期): 当我前几天运行这个命令时,它工作得很好。今天,这个命令不仅不断抛出错误,而且会发生在循环的不同部分:有时是第1个url,有时是第5h,第8个等等,没有一致性。当我隔离这些URL并对单个实例执行此命令时,从来不会出现错误,这使我

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