目录
1 前言
2 普通for循环中return,continue,break的用法
3 Java8中foreach()的用法
4 如何退出Java8中的foreach()循环
4.1 anyMatch(Predicate p)
1 前言
在我们平时开发中,会发现Java8的foreach()循环使用率要远远大于之前的普通for循环使用,它们二者在使用上还是有许多区别的。之前能跳出普通for循环使用的一些关键字在Java8中的foreach()循环中却不能使用。
2 普通for循环中return,continue,break的用法
return: 直接结束当前方法
@Test
public void testForeach(){
List
for (String str: list) {
if (str.equals("789")){
return;
}
System.out.println(str);
}
System.out.println("方法正在进行。。。。。");
}
continue:结束当前循环,进入下一循环
@Test
public void testForeach(){
List
for (String str: list) {
if (str.equals("789")){
continue;
}
System.out.println(str);
}
System.out.println("方法正在进行。。。。。");
}
break:结束此次for循环
@Test
public void testForeach(){
List
for (String str: list) {
if (str.equals("789")){
break;
}
System.out.println(str);
}
System.out.println("方法正在进行。。。。。");
}
3 Java8中foreach()的用法
return: 结束当前循环,进入下一循环
@Test
public void testForeach(){
List
lists.forEach(list->{
if (list.equals("789")){
return;
}
System.out.println(list);
});
System.out.println("方法正在进行。。。。。");
}
注意:Java8中的lambda表达式foreach()不支持continue和break关键字
4 如何退出Java8中的foreach()循环
4.1 anyMatch(Predicate p)
/**
* anyMatch(Predicate p) 传入一个断言型函数,对流中所有的元素进行判断
* 只要有一个满足就返回true,都不满足就返回false,返回true时就结束了循环
*/
@Test
public void testForeach(){
List
lists.stream().anyMatch(list->{
if (list.equals("789")){
return true;
}
System.out.println(list);
return false;
});
System.out.println("方法正在进行。。。。。");
}
/**
* 这种写法不便于测试理解,但简便,平时推荐使用这种
*/
@Test
public void testForeach(){
List
lists.stream().anyMatch(list-> list.equals("789"));
System.out.println("方法正在进行。。。。。");
}
以上,我们就理清了普通for循环和Java8foreach()循环中的关系,以及使用Java8中lambda表达式做出跳出循环操作的方法。暂时写到这里,有机会会继续补充,不对的地方还请批评指正。
想要了解更多编程小知识,快来关注公众号:爪哇开发吧!每周会不定时的进行更新。