Java提供了三种不同的for循环方式:
代码解读复制代码for (int i = 0; i < arrayList.size(); i++) {
// 执行操作
}
fori是Java最早的for循环形式。随着Java语法的不断改进以及JDK 8的推出,这种方式在实际企业开发中并不常见,大多出现在传统的大学教材中。如今,甚至阿里巴巴的代码检测插件也建议将fori形式转换为foreach形式。
代码解读复制代码for (String s : arrayList) {
// 执行操作
}
也称为增强for循环,是对fori的语法糖。在编译时,foreach会自动转换为fori的形式。
代码解读复制代码arrayList.forEach(array -> {
// 执行操作
});
这是在JDK 1.8之后引入的一种for循环方式,结合lambda表达式使用。代码更加简洁,可以与其他新特性配合使用,以最简洁的形式完成复杂操作。但需要注意,使用该方式时,return和break不能像前两种方式那样达到同样的目的。
代码解读复制代码ArrayList<Integer> integers = Lists.newArrayList(1, 2, 3, 4, 5);
integers.forEach(i -> {
if (i == 2) {
System.out.println(i);
return;
}
System.out.println("当前值" + i);
});
for (Integer i : integers) {
if (i == 2) {
System.out.println(i);
continue;
}
System.out.println("当前值" + i);
}
}
在Stream.foreach中,无法使用break关键字。然而,可以使用return来跳出当前循环。