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循环,一般业务中很少有几万数据去循环。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • CSS的Display属性可能的值

    none 此元素不会被显示。 block 此元素将显示为块级元素,此元素前后会带有换行符。 inline 默认。此元素会被显示为内联元素,元素前后没有

    2021年12月26日
  • C#MQTTNET服务端使用说明

    C#MQTTNET服务端使用说明C#MQTTNET服务端使用说明1.安装MQTTNet两种方式Shell可视化安装2.当前我的项目安装的依赖如下3.如何使用1.我想启动MQTT服务器,我该怎么做?2.我想知道MQTT服务器是否启动成功,我该怎么做?3.我想知道MQTT服务器是否停止允许,我该怎么做?4.我想知道有那些设备连接上了服务器,我该怎么做?5.我想知道有那些设备断开连接,我该怎么做?6.我想监听消息,我该怎么做?7.我想连接的客户端校验身份信息后才允许收发消息,我该怎么做?8.我想知道客户端订阅主题与取消订阅主题,我该怎么做?1.

  • mysql shell创建数据库_mysql怎么建立数据库

    mysql shell创建数据库_mysql怎么建立数据库#!/bin/shSHELL_NAME=GetTabStript.sh/bin/rm-fCreateTable.sql/bin/rm-ftmp.sql##获取数据库用户名、密码、实例,属主,表名称列表信息;执行格式如下:##指定表:shGetTabStript.sh”dbrwdadm””dbrwdadm””chnrwd””DBRWDADM””DCUSTMSGSCHNKPI”…

  • 使用jxls导出报错:Connot load XLS transformer please make sure a Transformer implementation is in classpath

    使用jxls导出报错:Connot load XLS transformer please make sure a Transformer implementation is in classpath使用jxls导出是报错:java.lang.IllegalStateException:CannotloadXLStransformer.PleasemakesureaTransformerimplementationisinclasspath仔细排查,是因为批注的问题:是因为批注放到第二个单元格去了,扫描不到区域,把批注改到第一个单元格就行了。如果表格中写入数据为空,也是因为批注放到第二个单元格去了,所以最后导出个空文件。以上是博主遇到的问题,可..

  • CDN实现原理_快照技术的实现原理

    CDN实现原理_快照技术的实现原理CDN技术详解一本好的入门书是带你进入陌生领域的明灯,《CDN技术详解》绝对是带你进入CDN行业的那盏最亮的明灯。因此,虽然只是纯粹的重点抄录,我也要把《CDN技术详解》的精华放上网。公诸同好。第

  • DHT11湿度传感器开发「建议收藏」

    DHT11湿度传感器开发「建议收藏」本文对在CC2540上开发DHT11湿度传感器进行裸机开发,并显示与LED屏上,如下图所示看了无数的datasheet,终于看到中文的了,感觉一下轻松很多,虽然这颗传感器科技含量也不是特别高,但精神还是为之一振,希望我朝设计出更高端的电子元器件。湿敏元件是最简单的湿度传感器。湿敏元件主要有电阻式、电容式两大类。湿敏电阻的特点是在基片上覆盖一层用感湿材料制成的膜,当空气中

发表回复

您的电子邮箱地址不会被公开。

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