【发布时间】:2016-11-13 12:26:06
【问题描述】:
我有一个老式的for 循环来做一些负载测试:
For (int i = 0 ; i < 1000 ; ++i) {
if (i+1 % 100 == 0) {
System.out.println("Test number "+i+" started.");
}
// The test itself...
}
如何在没有for 的情况下使用新的 Java 8 流 API 来执行此操作?
此外,流的使用可以很容易地切换到并行流。 如何切换到并行流?
* 我想保留对i 的引用。
【问题讨论】:
-
如果
i是原语,“我想保留对 i 的引用。” 这句话是什么意思? -
无论条件如何,测试都在运行吗?
-
试试这个
IntStream.range(0, 1000).filter(i->((i+1)%100 ==0)).forEach(i->System.out.printf("Test number %d started.%n", i)); -
从当前代码来看,测试是针对所有
i值运行的,而不是每 100 个值。这是故意的吗?是否要使用预定义的步骤迭代索引,如stackoverflow.com/questions/32586604/… 所示? -
我只想通知每 100 个处理元素的进度。我应该按时完成,但我认为为时已晚。答案将其作为问题的一部分。
标签: java for-loop java-8 java-stream