java lambda map循环停止_Map 使用 Lambda 的 forEach 实现跳出循环操作
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 实现跳出循环操作相关推荐
- java map循环删除_map循环删除某个元素
下面代码展示了遍历Map时删除元素的正确方式和错误方式. import java.util.HashMap; import java.util.Iterator; import java.util.M ...
- Java基础Map循环遍历
import java.util.HashMap; import java.util.Iterator; import java.util.Map;/****@purpose:几种常见的Map循环*@ ...
- java中Map循环的几种方式
package com.xhx.collection;import org.junit.Test;import java.util.HashMap; import java.util.Iterator ...
- Java之Map循环方式
Map<String, String> map = new HashMap<>(4);map.put("hello", "world") ...
- java 如何让循环结束,跳过某个条件,跳出当前的多重嵌套循环
当数据比较庞大的时候,需要循环遍历某个数据的时候可用 for (int ab= 0;ab<10000;ab++){if (ab ==7){//当找到7的时候,结束循环Log.v("ma ...
- java8 lambda map排序_Android兼容Java 8语法特性的原理分析
本文主要阐述了Lambda表达式及其底层实现(invokedynamic指令)的原理.Android第三方插件RetroLambda对其的支持过程.Android官方最新的dex编译器D8对其的编译支 ...
- java lambda map用法_Java 中如何使用 lambda 表达式填充 Map?
Map是一个集合对象,它将键映射到Java中的值. 数据可以存储在键/值对中,并且每个键都是唯一的. 这些键/值对也称为映射条目. 在下面的示例中,我们可以使用lambda表达式填充映射.我们已经将字 ...
- 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 ...
- JAVA学习笔记 15 - 函数式接口、Lambda表达式和方法引用
本文是Java基础课程的第十五课.主要介绍在JDK8中,Java引入的部分新特性,包括函数式接口.Lambda表达式和方法引用.这些新特性使得Java能够在按照面向对象思想进行开发的基础上,融合函数式 ...
最新文章
- 2020年的AI现状
- VTK:可视化之PointDataSubdivision
- 5、Hive的自定义UDF函数
- enityframework 已连接的当前状态为打开。_关于性能优化 从tcp建立连接amp;断开的视角...
- 存储端显示主机链路降级_【计算机网络】你真的理解数据链路层吗?
- C# winFrom窗体设计问题-部分文件打不开窗体设计器 变成类.cs
- Mac电脑壁纸 Mac动态壁纸 小镇冬日夜景动态壁纸
- 【erlang ~ 4 days】 Day # 1.1 History
- pythonqt5教程从零开始_pyQt5 QtDesigner 简易入门教程
- 转:认知盈余时代,知乎是如何运营的
- 信息搜集-敏感信息泄露
- 企业的五种组织架构模式
- coreldraw2019天气滤镜_CorelDRAW2019(cdr2019)使用教程之 复制图形技巧
- react —— 解决报错之 Objects are not valid as a React child (found: [object HTMLDivElement]). If you meant
- PHP发送邮件类库PHPMailer的简单使用 摘自 现代魔法研究协会
- 【https】利用keytool进行证书配置
- 关于STL中vector容器的一些总结
- 《战国策》之《触龙说赵太后》
- 贴片电阻电容的封装形式及尺寸
- 文件服务器 ip白名单,如何将百度云加速的IP段加入到服务器IP白名单中