【问题标题】:Loop index in java 8 [duplicate]java 8中的循环索引[重复]
【发布时间】:2017-02-07 14:26:43
【问题描述】:

有没有办法使用流来写这段代码:

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

谢谢!

【问题讨论】:

  • 您的意思是doSomethingElse(list.get(i)); 吗?

标签: loops java-8 java-stream


【解决方案1】:

您可以为此使用IntStream...但是您为什么要这样做?它看起来与您编写的内容基本相同,但由于IntStream 在这里并不真正需要,所以会产生一些开销。

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

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

【讨论】:

  • 你是对的。我认为使用流的代码会不那么冗长,但在这种情况下,不需要使用主题。谢谢!
猜你喜欢
  • 2021-11-02
  • 2012-10-19
  • 1970-01-01
  • 2018-11-19
  • 2016-05-30
  • 2013-08-11
  • 2018-09-17
相关资源
最近更新 更多