lamda中stream的forEach与for循环对比

lamda中stream的forEach与for循环对比对比方式将一个字符串数组进行输出的方式:代码publicstaticvoidmain(String[]args)throwsIOException{intn=500000;String[]strings=newString[n];LongstreamStart=System.currentTimeMillis();Arrays.stream(strings).forEach(System

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

对比方式

  • 将一个字符串数组进行输出的方式:
  • 代码

    public static void main(String[] args) throws IOException { 
   
        int n=500000;
        String[] strings = new String[n];
        Long streamStart = System.currentTimeMillis();
        Arrays.stream(strings).forEach(System.out::println);
        Long streamEnd = System.currentTimeMillis();
        for (int i = 0; i < n; i++) { 
   
            System.out.println();
        }
        Long forEnd = System.currentTimeMillis();

        System.out.println("stream forEach 运行时间:" + (streamEnd - streamStart));
        System.out.println("for循环 运行时间:" + (forEnd - streamEnd));

    }

Jetbrains全家桶1年46,售后保障稳定

  • 数据运行表格
数组长度 for循环(ms) stream的forEach(ms)
100 1 31
1000 6 52
5000 22 62
10000 33 89
20000 75 168
50000 249 276
80000 534 432
100000 696 454
500000 904 2704
1000000 1740 3616
  • 截图(按照表格截图)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1000组数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
1000000
在这里插入图片描述
500000
在这里插入图片描述

总结

循环大概在50000大小的时候for循环就开始慢慢运行时间大于forEach,在50000数据之前都是for循环优势。但是当我直接加到1000000大小时发现for循环的速度优势又回来了,又测试了500000发现依然是for循环优势。
所以大概率下,几万几万数据时forEach速度是领先的。小数据和极大数据下for循环领先,所以推荐使用for循环,一般业务中很少有几万数据去循环。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234403.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android URLEncoder

    Android URLEncoderbug:发送httpget请求的时出错Causedby:java.lang.IllegalArgumentException:Illegalcharacterinqueryatindex70:….原因:在请求中我用到了不常用的字符,导致调用HttpGet(url)方法时,url参数解析错误解决方法:所以如果法中这种问题,可以在调用下面的方法将参数加密URLEnco

    2022年6月17日
    37
  • 如何部署服务器虚拟化,vmware服务器虚拟化方案(vmware虚拟化平台部署)

    如何部署服务器虚拟化,vmware服务器虚拟化方案(vmware虚拟化平台部署)服务器虚拟化平台方案主要的有三种 特点分别如下 1 思杰 CitrixXenSer XenCenter 是 Citrix 的虚拟化图形接口管理工具 可在同一界面 管理多台的 XenServer 服务 以前见过一台服务器安装虚拟服务器 然后可以装 N 个系统 又节约硬件 又 1VMwareESXSe 的安装 VMwareESXSer 需要 2GB 的内存 在开始测试的时候 为 ESXSer

    2025年9月5日
    2
  • ansible免密登陆的小技巧

    ansible免密登陆的小技巧

    2021年6月11日
    136
  • 深度学习中学习率和batchsize对模型准确率的影响

    本内容来自其他的人解析,参考链接在最后的注释。1.前言目前深度学习模型多采用批量随机梯度下降算法进行优化,随机梯度下降算法的原理如下:n是批量大小(batchsize),η是学习率(learningrate)。可知道除了梯度本身,这两个因子直接决定了模型的权重更新,从优化本身来看它们是影响模型性能收敛最重要的参数。学习率直接影响模型的收敛状态,batchsize则影响模型的泛化性能,两者又是分子分母的直接关系,相互也可影响,因此这一次来详述它们对模型性能的影响。2.学习率如何影响模型性.

    2022年4月17日
    83
  • 2021github仓库操作流程手册指南「建议收藏」

    2021github仓库操作流程手册指南「建议收藏」文章目录1.git操作2.git简介3.git安装4.git使用1.git初始化2.git设置用户信息3.git项目的拉取1.创建仓库2.本地初始化3.查看当前是否存在自己的账号信息并配置(包含步骤4)4.基础配置5.初始化内容6.开始引入自己的项目的地址7.更新操作8.git文件的添加保存和推送到github9.git文件的修改删除推送github10.gitpush操作每次都需要输入账号密码的解决办法5.总结至此git的仓库创建,仓库拉取到本地,文件的添加修改删除提交已经完成。其中遇到

    2022年7月16日
    19
  • initializecomponent()什么意思(丹参的功效与作用)

    初始你的控件的初始值用的,一般说来你拖放一个控件到Vs.net里,并设置相应的控件属性值,这些都由Vs.net自动放在InitializeComponent()这个函数里,明白了吧InitializeComponent从字面上理解就是初始化组件的意思:)

    2022年4月14日
    106

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号