今天使用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相关推荐

  1. Kotlin forEach中实现break

    Kotlin 线上编写练习 Kotlin官网提供了 PlayGround 供大家线上尝试 地址:https://play.kotlinlang.org/ 文章目录 前言 解决方式 遇到得问题 结语 参 ...

  2. java停止循环label_Java中的break Label 和continue Label 例子(跳出多重循环)(转)...

    Java中的break Label 和continue Label 例子(跳出多重循环)(转) (2011-03-14 16:20:32) 标签: it 1:break break语句提供了一种方便的 ...

  3. java list foreach 修改_Java ArrayList在foreach中remove的问题分析

    都说ArrayList在用foreach循环的时候,不能add元素,也不能remove元素,可能会抛异常,那我们就来分析一下它具体的实现.我目前的环境是Java8. 有下面一段代码: public c ...

  4. Python中break语句和continue语句的用法

    在Python中,break语句和continue语句一般用于循环语句中. 1 break语句 1.1 break语句在单循环中的使用 在单循环中的break语句,其作用是结束当前循环,代码如图1所示 ...

  5. java8 foreach 异常_错误处理 – 在java 8流foreach中抛出异常

    我正在使用 java 8流,我不能在流的foreach中抛出异常. stream.forEach(m -> { try { if (isInitial) { isInitial = false; ...

  6. Java forEach中 Lambda Expr中的 final变量要求

    https://my.oschina.net/wadelau/blog/1859419 Java forEach中 Lambda Expr中的 final变量要求 Java8闭包 闭包是一个函数在创建 ...

  7. java8 foreach 伟参_【java8】为java8的foreach正名

    首先为自己没有经过严格测试得出的错误结论感到抱歉,原博文,测试完感觉自己发现了一个新bug,后来思前想后觉得不应该是这样的,如果效率差的这么多,jdk的开发人员会不去优化它吗,但是怎么重复测试任然得到 ...

  8. java8的lambda中的map相关操作

    0 入门详解篇 1   史上最简单入门:java8的lambda中的map相关操作:基础及注意事项图文详解 2   java8的lambda中collect接口案例及原理详解,官方文档解读 3   j ...

  9. Kotlin在forEach中如何跳出循环和跳出当前循环体

    一.数组的forEach中直接retrun fun main(args: Array<String>) {val arr = intArrayOf(1,2,3,4,5,6,7)arr.fo ...

最新文章

  1. dsp处理浮点数_关于IQMATH和浮点数在DSP的深入理解
  2. PostgreSQL参数优化对比性能测试
  3. ROS知识【13】:ubuntu下安装eclipse-CDT【非installor】
  4. 电脑开机密码忘记了怎么办?
  5. RxSwift 系列(一)
  6. 关于@DateTimeFormat 和 @JsonFormat 注解
  7. php factory interface,PHP设计模式之工厂方法*解读
  8. regester正则用法_Regester学习笔记
  9. 字节跳动教育裁员处理还是挺仗义的!
  10. android加密打包,(爱加密系列教程二十)Xamarin开发Android应用、如何打包apk(转载)...
  11. UltraEdit (最新版[25.10.0.62])安装破解
  12. 用友u8怎么导出凭证_老师,用友U8里的凭证如何导出(导出有借贷方向的)?...
  13. 程序员进阶必备--写文档
  14. 全国计算机等级考试报名支付不了,23日起,全国计算机等级考试开始网上报名...
  15. EXCEL数组公式(2)---数组公式的基础概念等
  16. 古月居 ROS 入门21讲--PA18 tf坐标系广播与监听的编程实现笔记
  17. C语言简易程序设计————11、打印楼梯与笑脸
  18. 常用第三方SDK目录
  19. USA gov data from Bitly
  20. Java学历很重要_Java开发找工作,学历重要还是技术重要?

热门文章

  1. android 设置键盘弹出动画,Android实现键盘弹出界面上移的实现思路
  2. pdo_mysql 必须 ×未安装_php pdo_mysql未安装问题解决方法_PHP教程 | 蒲公英网
  3. python学好了可以做什么菜_你是怎么学好Python的?
  4. excel两个表格数据对比_Excel表格怎么防止看错数据?阅读模式了解一下
  5. python 存入数据库bigint_【Python】从0开始写爬虫——把扒到的豆瓣数据存储到数据库...
  6. websocket receive方法内 有循环怎么退出_WebSocket了解一下
  7. python输出方格_Python蓝桥杯练习 剪格子
  8. 各纬度气候分布图_读中国年平均气温分布图,寻找中国全年平均气温最高和最低的地方...
  9. DICOM医学图像处理:DICOM存储操作之“多幅BMP图像数据存入DCM文件”
  10. 【AI白身境】学AI必备的python基础​​​​​​​