8.2 访问元素

创建 int 数组时,其元素默认初始化为 0,图 8-1 是前面创建的数组 counts 的状态图。

图像说明文字

图 8-1:一个 int 数组的状态图

箭头表明 counts 的值是一个指向数组的引用(reference)。你应将数组和指向它的变量视为两码事,稍后你将看到,既可以给另一个变量赋值,使其与 counts 指向同一个数组,也可以修改 counts 的值,使其指向另一个数组。

方框内的数字表示的是数组的元素,方框外的数字是索引(index),用于标识数组中的各个位置。注意,第一个元素的索引为 0,而不是你预期的 1。

运算符 [] 用于选择数组中的元素:

  1. System.out.println("The zeroth element is " + counts[0]);

可在表达式的任何地方使用运算符 []

  1. counts[0] = 7;
  2. counts[1] = counts[0] * 2;
  3. counts[2]++;
  4. counts[3] -= 60;

图 8-2 显示了执行这些语句的结果。

图像说明文字

图 8-2:执行多条赋值语句后的状态图

可将任何表达式用作索引,只要其类型为 int。最常见的做法之一是将循环变量用作数组的索引,如下所示:

  1. int i = 0;
  2. while (i < 4) {
  3. System.out.println(counts[i]);
  4. i++;
  5. }

while 循环从 0 数到 4;i 为 4 时不满足条件,循环结束。因此,仅在 i 为 0、1、2 和 3 时,循环体才被执行。

我们在每次的循环中都将 i 用作数组的索引,以显示第 i 个元素。这种数组处理方式通常是用 for 循环来实现的:

  1. for (int i = 0; i < 4; i++) {
  2. System.out.println(counts[i]);
  3. }

对数组 counts 来说,只有索引 0、1、2 和 3 是合法的。如果索引为负或大于 3,将引发 ArrayIndexOutOfBoundsException 异常。