在Java8的foreach()中不能break,如果需要continue时,可以使用return
今天使用lambda表达式处理集合时,发现对return、break以及continue的使用有点迷惑,于是自己动手测试了一下,才发现在使用foreach()处理集合时不能使用break和continue这两个方法,也就是说不能按照普通的for循环遍历集合时那样根据条件来中止遍历,而如果要实现在普通for循环中的效果时,可以使用return来达到,也就是说如果你在一个方法的lambda表达式中使用return时,这个方法是不会返回的,而只是执行下一次遍历,看如下的测试代码:
List<String> list = Arrays.asList("123", "45634", "7892", "abch", "sdfhrthj", "mvkd");
list.stream().forEach(e ->{
if(e.length() >= 5){
return;
}
System.out.println(e);
});
上述代码的输出结果是如下图所示:
可以看出return起到的作用和continue是相同的。
想知道这是为什么,在Stack Overflow中找到一个答案,主要是说foreach()不是一个循环,不是设计为可以用break以及continue来中止的操作。
----------------------------------------------------------------------------------------------------------
针对问题:
1、foreach()循环操作元素时,是否会退出lambda表达式,如下图所示:
不管你遍历到哪个集合中的元素,上图都会停在第一行程序中而不会发生跳转,所以是不会停止lambda表达式的执行的。
---------------------
作者:lmy86263
来源:CSDN
原文:https://blog.csdn.net/lmy86263/article/details/51057733
版权声明:本文为博主原创文章,转载请附上博文链接!
转载于:https://www.cnblogs.com/softidea/p/10594029.html
在Java8的foreach()中不能break,如果需要continue时,可以使用return相关推荐
- Kotlin forEach中实现break
Kotlin 线上编写练习 Kotlin官网提供了 PlayGround 供大家线上尝试 地址:https://play.kotlinlang.org/ 文章目录 前言 解决方式 遇到得问题 结语 参 ...
- java停止循环label_Java中的break Label 和continue Label 例子(跳出多重循环)(转)...
Java中的break Label 和continue Label 例子(跳出多重循环)(转) (2011-03-14 16:20:32) 标签: it 1:break break语句提供了一种方便的 ...
- java list foreach 修改_Java ArrayList在foreach中remove的问题分析
都说ArrayList在用foreach循环的时候,不能add元素,也不能remove元素,可能会抛异常,那我们就来分析一下它具体的实现.我目前的环境是Java8. 有下面一段代码: public c ...
- Python中break语句和continue语句的用法
在Python中,break语句和continue语句一般用于循环语句中. 1 break语句 1.1 break语句在单循环中的使用 在单循环中的break语句,其作用是结束当前循环,代码如图1所示 ...
- java8 foreach 异常_错误处理 – 在java 8流foreach中抛出异常
我正在使用 java 8流,我不能在流的foreach中抛出异常. stream.forEach(m -> { try { if (isInitial) { isInitial = false; ...
- Java forEach中 Lambda Expr中的 final变量要求
https://my.oschina.net/wadelau/blog/1859419 Java forEach中 Lambda Expr中的 final变量要求 Java8闭包 闭包是一个函数在创建 ...
- java8 foreach 伟参_【java8】为java8的foreach正名
首先为自己没有经过严格测试得出的错误结论感到抱歉,原博文,测试完感觉自己发现了一个新bug,后来思前想后觉得不应该是这样的,如果效率差的这么多,jdk的开发人员会不去优化它吗,但是怎么重复测试任然得到 ...
- java8的lambda中的map相关操作
0 入门详解篇 1 史上最简单入门:java8的lambda中的map相关操作:基础及注意事项图文详解 2 java8的lambda中collect接口案例及原理详解,官方文档解读 3 j ...
- Kotlin在forEach中如何跳出循环和跳出当前循环体
一.数组的forEach中直接retrun fun main(args: Array<String>) {val arr = intArrayOf(1,2,3,4,5,6,7)arr.fo ...
最新文章
- dsp处理浮点数_关于IQMATH和浮点数在DSP的深入理解
- PostgreSQL参数优化对比性能测试
- ROS知识【13】:ubuntu下安装eclipse-CDT【非installor】
- 电脑开机密码忘记了怎么办?
- RxSwift 系列(一)
- 关于@DateTimeFormat 和 @JsonFormat 注解
- php factory interface,PHP设计模式之工厂方法*解读
- regester正则用法_Regester学习笔记
- 字节跳动教育裁员处理还是挺仗义的!
- android加密打包,(爱加密系列教程二十)Xamarin开发Android应用、如何打包apk(转载)...
- UltraEdit (最新版[25.10.0.62])安装破解
- 用友u8怎么导出凭证_老师,用友U8里的凭证如何导出(导出有借贷方向的)?...
- 程序员进阶必备--写文档
- 全国计算机等级考试报名支付不了,23日起,全国计算机等级考试开始网上报名...
- EXCEL数组公式(2)---数组公式的基础概念等
- 古月居 ROS 入门21讲--PA18 tf坐标系广播与监听的编程实现笔记
- C语言简易程序设计————11、打印楼梯与笑脸
- 常用第三方SDK目录
- USA gov data from Bitly
- Java学历很重要_Java开发找工作,学历重要还是技术重要?
热门文章
- android 设置键盘弹出动画,Android实现键盘弹出界面上移的实现思路
- pdo_mysql 必须 ×未安装_php pdo_mysql未安装问题解决方法_PHP教程 | 蒲公英网
- python学好了可以做什么菜_你是怎么学好Python的?
- excel两个表格数据对比_Excel表格怎么防止看错数据?阅读模式了解一下
- python 存入数据库bigint_【Python】从0开始写爬虫——把扒到的豆瓣数据存储到数据库...
- websocket receive方法内 有循环怎么退出_WebSocket了解一下
- python输出方格_Python蓝桥杯练习 剪格子
- 各纬度气候分布图_读中国年平均气温分布图,寻找中国全年平均气温最高和最低的地方...
- DICOM医学图像处理:DICOM存储操作之“多幅BMP图像数据存入DCM文件”
- 【AI白身境】学AI必备的python基础​​​​​​​