最近在项目开发时,使用lambda表达式处理集合,发现不能使用return。
查询资料大概总结如下:
1、普通for循环:
可以使用break跳出整个for循环,使用continue跳出本次循环。
2、增强for循环:
可以使用break跳出整个for循环,使用continue跳出本次循环。
增强for循环(break)
public class Test {
public static void main(String[] args) {
List<String> list = Arrays.asList("qwe","asd","abc","zxc");
for(String str:list){
if(str.equals("abc")){
break;
}
System.out.println(str);
}
}
}
运行结果:
qwe
asd
增强for循环(continue)
public class Test {
public static void main(String[] args) {
List<String> list = Arrays.asList("qwe","asd","abc","zxc");
for(String str:list){
if(str.equals("abc")){
continue;
}
System.out.println(str);
}
}
}
运行结果:
qwe
asd
zxc
3、stream.forEach()循环
处理集合时不能使用break和continue中止和跳出循环;
可以使用关键字return跳过本次循环,直接遍历下一个;
但是不能跳出整个forEach的循环。
public class Test {
public static void main(String[] args) {
List<String> list = Arrays.asList("qwe","asd","abc","zxc");
list.stream().forEach(e -> {
if(abc.equals(e)){
return;
}
System.out.println(e);
});
}
}
运行结果:
qwe
asd
zxc
所以如果想要跳出循环,建议可以使用增强for循环。