遍历数组
通过 for
循环就可以遍历数组。因为数组的每个元素都可以通过索引来访问,因此,使用标准的 for
循环可以完成一个数组的遍历:
public class Main {
public static void main(String[] args) {
int[] n = { 1, 4, 9, 16, 25 };
for (int i=0; i<n.length; i++) {
int s = n[i];
System.out.println(s);
}
}
}
为了实现 for
循环遍历,初始条件为 i=0
,因为索引总是从0开始,继续循环的条件为 i<n.length
,因为当 i<n.length
时,i
已经超出了索引范围(索引范围是 0 ~ n.length-1
),每次循环后,i++
。
第二种方式是使用 for each
循环,直接迭代数组的每个元素:
public class Main {
public static void main(String[] args) {
int[] n = { 1, 4, 9, 16, 25 };
for (int s : n) {
System.out.println(s);
}
}
}
注意:在 for (int s : n)
循环中,变量 s
直接拿到 n
数组的元素,而不是索引。
显然 for each
循环更加简洁。但是, for each
循环无法拿到数组的索引,因此,到底用哪一种 for
循环,取决于我们的需要。
打印数组
直接打印数组变量,得到的是数组在JVM中的引用地址:
int[] n = { 1, 1, 2, 3, 5, 8 };
System.out.println(n); // 类似 [I@7852e922
这并没有什么意义,因为我们希望打印的数组的元素内容。因此,使用 for each
循环来打印它:
int[] n = { 1, 1, 2, 3, 5, 8 };
for (int s : n) {
System.out.print(s + ", ");
}
使用 for each
循环打印也很麻烦。幸好Java标准库提供了 Arrays.toString()
,可以快速打印数组内容:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] n = { 1, 1, 2, 3, 5, 8 };
System.out.println(Arrays.toString(n));
}
}