关于Java8的foreach中使用return/break/continue产生的问题

 更新时间:2023年10月20日 09:14:25   作者:架构帅  
这篇文章主要介绍了关于Java8的foreach()中使用return/break/continue产生的问题,在使用foreach()处理集合时不能使用break和continue这两个方法,也就是说不能按照普通的for循环遍历集合时那样根据条件来中止遍历,需要的朋友可以参考下

foreach()中使用return/break/continue

今天使用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来中止的操作。

针对问题:

foreach()循环操作元素时,是否会退出lambda表达式 

如下图所示:

不管你遍历到哪个集合中的元素,上图都会停在第一行程序中而不会发生跳转,所以是不会停止lambda表达式的执行的。

到此这篇关于关于Java8的foreach()中使用return/break/continue产生的问题的文章就介绍到这了,更多相关foreach()中使用return/break/continue内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决springboot启动时报错的问题ApplicationEventMulticaster not initialized

    解决springboot启动时报错的问题ApplicationEventMulticaster not&nbs

    这篇文章主要介绍了解决springboot启动时报错的问题ApplicationEventMulticaster not initialized,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Java 爬虫如何爬取需要登录的网站

    Java 爬虫如何爬取需要登录的网站

    这篇文章主要介绍了Java 爬虫如何爬取需要登录的网站,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Springboot几种任务的整合方法

    Springboot几种任务的整合方法

    这篇文章主要介绍了Springboot几种任务的整合方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Spring中的FactoryBean与BeanFactory详细解析

    Spring中的FactoryBean与BeanFactory详细解析

    这篇文章主要介绍了Spring中的FactoryBean与BeanFactory详细解析,在Spring框架中,FactoryBean和BeanFactory是两个关键的接口,用于创建和管理对象实例,它们在Spring的IoC(Inversion of Control,控制反转)容器中发挥着重要的作用,需要的朋友可以参考下
    2023-11-11
  • 解决IDEA 启动Tomcat控制台乱码问题

    解决IDEA 启动Tomcat控制台乱码问题

    今天在Idea中用Tomcat跑一个Web项目,启动后,Tomcat日志在控制台打印出来都是乱码,初次遇到这个问题真的很棘手,今天小编带领大家一起看看解决方法
    2018-07-07
  • 使用XML配置c3p0数据库连接池

    使用XML配置c3p0数据库连接池

    这篇文章主要为大家详细介绍了使用XML配置c3p0数据库连接池,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • java中Object类4种方法详细介绍

    java中Object类4种方法详细介绍

    大家好,本篇文章主要讲的是java中Object类4种方法详细介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • java随机抽取指定范围内不重复的n个数

    java随机抽取指定范围内不重复的n个数

    这篇文章主要为大家详细介绍了java随机抽取指定范围内不重复的n个数,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • 启动Tomcat时出现大量乱码的解决方法

    启动Tomcat时出现大量乱码的解决方法

    今天给大家带来的是关于Java的相关知识,文章围绕着启动Tomcat时出现大量乱码的解决方法展开,文中有非常详细的介绍及图文示例,需要的朋友可以参考下
    2021-06-06
  • Java中2个对象字段值比较是否相同

    Java中2个对象字段值比较是否相同

    本文主要介绍了Java中2个对象字段值比较是否相同,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04

最新评论