以数组为例,基本上有下面4种常见的遍历方式:
public class Test {
public static void main(String[] args) {
// 方式1
for (int i = 0; i < Test.array().length; i++) {
}
System.out.println("---");
// 方式2
int length = Test.array().length;
for (int i = 0; i < length; i++) {
}
System.out.println("---");
// 方式3
for (int i = 0, size = Test.array().length; i < size; i++) {
}
// 方式4
System.out.println("---");
for (int i : Test.array()) {
}
}
public static int[] array() {
System.out.println("array");
int[] result = {1, 2, 3};
return result;
}
}
方式1:多次调用函数,而这些调用是不必要的,浪费
方式2:引入了额外的length变量,而且该变量在整个方法作用域内都可见,有变量作用域污染问题
方式3:不存在方式1的浪费,不存在方式2的作用域污染,唯一不好的地方在于多定义一个变量
方式4:不存在方式1的浪费,不存在方式2的作用域污染,唯一不好的地方在于丢失了索引信息。
总之:不需要索引的时候使用方式4,需要索引的时候使用方式3。
本文介绍了四种数组遍历的方法,并分析了各自的优缺点。方式1频繁调用数组长度,效率较低;方式2引入额外变量,作用域可能被污染;方式3避免了上述两个问题但多定义了一个变量;方式4简洁高效,但不适用于需要索引的情况。

9336

被折叠的 条评论
为什么被折叠?



