概述
结论:能用Stream的就不要用For循环
通过测试: Stram流比For循环处理速度稍快一些(2-3s不等)
控制台输出的结论,我就不再展示了(专治不自己动手验证的朋友????,只有亲自验证过,记忆才会更深刻哦)
案例如下:
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
IntStream.range(0, 10000000).boxed()
.forEach(i -> list.add(i));
int MAX_HANDLE = 100000;
int MAX_HANDLE_TOTAL = (list.size() + MAX_HANDLE - 1) / MAX_HANDLE;
//数据分割 skip 手动塞数据
long start = System.currentTimeMillis();
List<List<Integer>> result1 = new ArrayList<>(MAX_HANDLE_TOTAL);
Stream.iterate(0, n -> n + 1)
.limit(MAX_HANDLE_TOTAL)
.forEach(i -> {
int fromIndex = i * MAX_HANDLE;
int toIndex = fromIndex + MAX_HANDLE;
result1.add(list.stream().skip(fromIndex).limit(toIndex).collect(Collectors.toList()));
});
System.err.println("Stream skip parallel 手动塞数据 总耗时:" + (System.currentTimeMillis() - start) + "ms");
//数据分割 for循环 1
start = System.currentTimeMillis();
List<List<Integer>> result3 = new ArrayList<>(MAX_HANDLE_TOTAL);
for (int i = 0; i <= MAX_HANDLE_TOTAL; i++) {
int fromIndex = i * MAX_HANDLE;
int toIndex = fromIndex + MAX_HANDLE;
result3.add(list.stream().skip(fromIndex).limit(toIndex).collect(Collectors.toList()));
}
System.err.println("for循环 总耗时:" + (System.currentTimeMillis() - start) + "ms");
}
最后
以上就是俏皮茉莉为你收集整理的结论:能用Stream就不要用For循环的全部内容,希望文章能够帮你解决结论:能用Stream就不要用For循环所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复