100万条数据遍历,lambda会比for循环快吗?

100万条数据遍历,lambda会比for循环快吗?
问在线客服
扫码问在线客服
  • 回答数

    10

  • 浏览数

    1,472

10个回答 默认排序
  • 默认排序
  • 按时间排序

普通for循环最快,不接受反驳

取消 评论

看使用场景,如果是纯计算型,直接用for循环,如果有其他的io操作,考虑并行的stream,主要取决于运算和线程同步的开销

取消 评论

lambda事实上还是在一个线程内运行,那么具体怎么实现的呢?

把线程看作一个任务池,每次创建一个任务,其实就是往任务池中插入一个任务。程序继续往下走,直到当前所有代码执行完毕之后,再从线程获取下一个任务执行。

lambda就是玩了这个小把戏,让人感觉是异步,事实上是任务碎片化的操作。

循环和lambda性能上差别就要看任务调度速度了,但我觉得,大多数情况下,还是for循环效率更高。

lambda的好处主要是不容易阻塞而已。

取消 评论

根据 Alex Zhitnitsky 的测试结果显示:坚持使用传统的 Java 编程风格——iterator 和 for-each 循环——比 Java 8 的实现性能更佳。

使用迭代器或 for-each 循环是遍历 ArrayList 最有效的方式,性能比采用索引值的传统 for 循环方式好两倍。

在 Java 8 的方法中,并行流的性能最佳。但是请小心,在某些情况下它也可能会导致程序运行得更慢。Lambda 表达式的速度介于流与并行流之间。

取消 评论

不会,stream开启并行后,大数据量才会提高一丢丢

取消 评论

应该不会,越是简单的语法,越是执行效率慢。这也解释了为什么python执行效率不如java

取消 评论

lambda中有并行流,可以多线程处理。不过单纯的100万条数据纯遍历,for还是会快一些的,数据量小的时候,多线程不一定比单线程快,不过当数据量很大,大几千万甚至上亿的时候,并行流或许会快一些

取消 评论

lambda和stream是两回事,问题应该是stream和for循环对比。正常串行stream与for对比,stream会慢到1.4-1.5倍;并行流循环会比较快只适合大量数据计算否则线程开销及同步操作会有性能损耗,运行速度大概是0.6-0.8倍for循环

取消 评论
加载全部10个答案 加载中...
ZOL问答 > UTM > 金山KingGate UTM > 金山KingGate UTM 100 > 100万条数据遍历,lambda会比...

相关产品

  • 金山KingGate UTM 100

    金山KingGate UTM 100

    参考价:¥39800    评分:-

    热门排行榜:未上榜

  • 京东搜一搜

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

100万条数据遍历,lambda会比for循环快吗?

点击可定位违规字符位置

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?