lambda 的 foreach表达式用起来很爽啊,最近开发中用来遍历了一下map,结果就翻车了......大致场景如下:

本来是要在找到包含了"3"的值之后终止循环的,结果break 编译错误.只好用return试试,神奇的事情发生了,并没有跳出循环,return在这里起到了continue的效果.为什么呢? --- 因为()->{}其实是匿名内部类,匿名内部类如何能使用break和continue呢,当然编译错误啊.在匿名内部类里面return了也仅仅是匿名内部类的调用终止,for循环继续下一次循环而已.所以,无奈之下,只能曲线救国了---使用

anymatch

补充知识:java8 lambda foreach循环与增强for循环性能对比

最近新的项目使用jdk1.8版本,于是乎博主想多使用一些lambda的写法,但是对于lambda并不是很了解所以在网上查了一些性能方面的资料,结果瞬间心凉,多数回答为lambda foreach循环性能要比传统循环差,性能甚至差出十几倍。然而,经过博主的测试那些回答是错误的。

性能对比的结论为 lambda foreach>增强for,以下给出测试数据。

测试结果:

为了验证前面的lomda表达式对后面的lomda表达式的影响,将main方法中的test1改为test2测试。

测试结果:

综上所述此时可以看出在第一次的时候两者性能相差40倍,这可能也是多数人认为它性能较差的原因,但是再后面的执行当中几乎都是lambda的执行速度快,所以博主觉得,lambda的foreach循环在首次执行的时候会初始化部分内容,从而导致执行过慢,在后续的执行当中由于不需要再次进行初始化,所以才展现出真正的实力。

因 此 博 主 推 荐 将 l a m b d a 表 达 式 的 初 始 化 放 到 项 目 启 动 的 过 程 中 , 这 样 可 以 大 大 提 高 l a m b d a 表 达 式 的 性 能 。

\color{#ff0000}{因此博主推荐将lambda表达式的初始化放到项目启动的过程中,这样可以大大提高lambda表达式的性能。}因此博主推荐将lambda表达式的初始化放到项目启动的过程中,这样可以大大提高lambda表达式的性能。

关于其他方面的测试,有兴趣的同学可以自行测试。

以上这篇map 使用 lambda 的 foreach 实现跳出循环操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持萬仟网。

希望与广大网友互动??

点此进行留言吧!

java lambda map循环停止_Map 使用 Lambda 的 forEach 实现跳出循环操作相关推荐

  1. java map循环删除_map循环删除某个元素

    下面代码展示了遍历Map时删除元素的正确方式和错误方式. import java.util.HashMap; import java.util.Iterator; import java.util.M ...

  2. Java基础Map循环遍历

    import java.util.HashMap; import java.util.Iterator; import java.util.Map;/****@purpose:几种常见的Map循环*@ ...

  3. java中Map循环的几种方式

    package com.xhx.collection;import org.junit.Test;import java.util.HashMap; import java.util.Iterator ...

  4. Java之Map循环方式

    Map<String, String> map = new HashMap<>(4);map.put("hello", "world") ...

  5. java 如何让循环结束,跳过某个条件,跳出当前的多重嵌套循环

    当数据比较庞大的时候,需要循环遍历某个数据的时候可用 for (int ab= 0;ab<10000;ab++){if (ab ==7){//当找到7的时候,结束循环Log.v("ma ...

  6. java8 lambda map排序_Android兼容Java 8语法特性的原理分析

    本文主要阐述了Lambda表达式及其底层实现(invokedynamic指令)的原理.Android第三方插件RetroLambda对其的支持过程.Android官方最新的dex编译器D8对其的编译支 ...

  7. java lambda map用法_Java 中如何使用 lambda 表达式填充 Map?

    Map是一个集合对象,它将键映射到Java中的值. 数据可以存储在键/值对中,并且每个键都是唯一的. 这些键/值对也称为映射条目. 在下面的示例中,我们可以使用lambda表达式填充映射.我们已经将字 ...

  8. aws rds监控慢sql_使用AWS Lambda函数自动启动/停止AWS RDS SQL Server

    aws rds监控慢sql This article gives you an overview of the AWS Lambda function to automatically start a ...

  9. JAVA学习笔记 15 - 函数式接口、Lambda表达式和方法引用

    本文是Java基础课程的第十五课.主要介绍在JDK8中,Java引入的部分新特性,包括函数式接口.Lambda表达式和方法引用.这些新特性使得Java能够在按照面向对象思想进行开发的基础上,融合函数式 ...

最新文章

  1. 2020年的AI现状
  2. VTK:可视化之PointDataSubdivision
  3. 5、Hive的自定义UDF函数
  4. enityframework 已连接的当前状态为打开。_关于性能优化 从tcp建立连接amp;断开的视角...
  5. 存储端显示主机链路降级_【计算机网络】你真的理解数据链路层吗?
  6. C# winFrom窗体设计问题-部分文件打不开窗体设计器 变成类.cs
  7. Mac电脑壁纸 Mac动态壁纸 小镇冬日夜景动态壁纸
  8. 【erlang ~ 4 days】 Day # 1.1 History
  9. pythonqt5教程从零开始_pyQt5 QtDesigner 简易入门教程
  10. 转:认知盈余时代,知乎是如何运营的
  11. 信息搜集-敏感信息泄露
  12. 企业的五种组织架构模式
  13. coreldraw2019天气滤镜_CorelDRAW2019(cdr2019)使用教程之 复制图形技巧
  14. react —— 解决报错之 Objects are not valid as a React child (found: [object HTMLDivElement]). If you meant
  15. PHP发送邮件类库PHPMailer的简单使用 摘自 现代魔法研究协会
  16. 【https】利用keytool进行证书配置
  17. 关于STL中vector容器的一些总结
  18. 《战国策》之《触龙说赵太后》
  19. 贴片电阻电容的封装形式及尺寸
  20. 文件服务器 ip白名单,如何将百度云加速的IP段加入到服务器IP白名单中

热门文章

  1. Python实现双向链表
  2. Global.asax.cs中的方法(包括自定义方法)的含义
  3. ExtJS表单提交与加载全攻略
  4. 《Pytorch - RNN模型》
  5. 漫步线性代数六——逆和转置
  6. centos so查看_等保测评主机安全:CentOS密码修改周期与登录失败处理
  7. 王道 —— 操作系统的四个特征
  8. 循环序列模型 —— 1.9 GRU单元(门控循环单元)
  9. 深入探讨SDN拓扑发现机制:新的攻击及实践对策【SDN拓扑】(上)
  10. 基于人机交互设备测量用户情绪。