「这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战」
Java 循环
Java中有三种主要的循环结构:
while循环do...while循环for循环
while 循环
while( 布尔表达式 ) {
// 循环内容
}
do...while 循环
do {
// 循环内容
} while( 布尔表达式 );
for 循环
和 C++ 11 一样,Java有两种 for 循环,一种是类似与 C 的:
for( 初始化; 布尔表达式; 更新 ) {
// 代码语句
}
还有一种用于数组迭代的:
for(type element: array)
{
System.out.println(element);
}
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
例如:
public class Test {
public static void main(String args[]){
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ){
System.out.print( x );
System.out.print(",");
}
System.out.print("\n");
String [] names = {"James", "Larry", "Tom", "Lacy"};
for( String name : names ) {
System.out.print( name );
System.out.print(",");
}
}
}
循环控制
break、continue 在 Java 中也同样有效。
Stream
在比较新的 Java 8 中,Java 提供了一个 Stream 类。可以比较响应式地去处理一个数据集合(比如数组、列表),处理的速度比手写 for 循环更快,也让代码更容易。比如:
int sum = widgets.stream()
.filter(w -> w.getColor() == RED)
.mapToInt(w -> w.getWeight())
.sum();
这段代码的作用就是在一个列表 widges 中过滤(选择)出所有红色的,然后取出其重量,求和。利用 Stream,让代码更专注于描述问题,省去了繁琐的循环结构控制语句细节。同时 Java 内部会自动去优化这种 stream 的处理流程,很可能比我们手动去写 for 更快哦。
如果你做 iOS 开发,Stream 在语法上其实就和 Swift 的 Combine 很像。 首先把集合数据转化成 Stream 对象,然后,就可以用 map、filter、sorted、limit、forEach 等方法去处理它了。
更多关于 stream 的介绍,可以参考官方的文档:Java docs: stram
在我个人的实践中,这个东西还是比较很好用的,用来做点排序过滤啥的,代码简单、效率也确实过得去,如果你的生产环境允许,这些 Java 8 的新东西好多都还是推荐学习的。