我是靠谱客的博主 故意香烟,最近开发中收集的这篇文章主要介绍Java - Java8 Lambda 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来中止的操作。

针对问题

1、foreach()循环操作元素时,是否会退出lambda表达式,如下图所示:

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

最后

以上就是故意香烟为你收集整理的Java - Java8 Lambda foreach 中使用 return/break/continue的全部内容,希望文章能够帮你解决Java - Java8 Lambda foreach 中使用 return/break/continue所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部