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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用ccproxy + stunnel做个加密代理「建议收藏」

    用ccproxy + stunnel做个加密代理「建议收藏」https://www.stunnel.org/downloads.htmlccproxy+stunnel做个加密http代理和socks5代理目前国内用户无法访问某些国外网站,如http://

    2022年7月3日
    57
  • hisi3516dv300学习笔记——编译hisi3516dv300的SDK

    hisi3516dv300学习笔记——编译hisi3516dv300的SDK先下载linux内核源码包,下载地址:https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/(1)编译整个osdrv目录:注意:默认不发布内核源码包,只发布补丁文件。内核源码包需自行从开源社区上下载。从linux开源社区下载v4.9.37版本的内核:1)进入网站:www.kernel.org2)选择HTTP协议资源的https://www.kernel.org/pub/选项,进入子页面3)选择linux/菜单项,进入子页面4)选择ker

    2022年9月23日
    0
  • .py和.ipynb的小知识

    .py和.ipynb的小知识目录1.相同点2.区别3.转换4.类比1.相同点用Python语言编写的源代码文件,其文件后缀是“.py”或“.ipynb”。用Python语言编写的源代码文件,其文件后缀是“.py”或“.ipynb”。2.区别.py:".py"文件是标准的Python源代码文件,通常情况下,使用“.py”的python源代码文件。可以用Spyder编辑并运行.py文件。也可…

    2022年10月23日
    0
  • 框架梳理|企业大数据管理之道「建议收藏」

    框架梳理|企业大数据管理之道「建议收藏」大数据管理——企业转型升级与竞争力重塑之道》一书,从大数据驱动决策、大数据优化管理、大数据智慧营销、大数据发现创新、大数据推动转型、大数据保障安全六个维度全面分析了大数据对传统企业的应用价值,提供可借鉴的案例和深度有格局的思考。本文主要讲述的就是对于这本书的个人看法。

    2022年5月1日
    57
  • java算法之身份证号码验证

    调用时直接new IDCard().verify(身份证id);就可以了实现代码如下:public class IDCard { private String _codeError; //wi =2(n-1)(mod 11) final int[] wi = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 1

    2022年3月10日
    50
  • java冒泡排序经典代码_Java干货分享:冒泡排序

    java冒泡排序经典代码_Java干货分享:冒泡排序不管学习什么编程语言,冒泡排序都是每一个走上IT路的小伙伴的必经之路。但是还有好多小伙伴对冒泡排序摸不着头脑,今天知了堂小编就来分享一下经典算法——冒泡排序。首先咱们举个金鱼吐泡泡的例子来理解冒泡排序的过程:金鱼吐出的一连串泡泡就是我们要排序的数据,数据就像泡泡浮上水面一样一个一个被排好序,吐出的泡泡越大就会越快浮出水面,相应的,数据里某一个数字越大,那么就能越快的被排好序,当然最大的数字也是第一…

    2022年7月7日
    16

发表回复

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

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