“嗨,阿米戈!”

“嗨,艾莉。”

“今天,我要给你介绍一个有趣的新实体:数组。数组是一种数据类型,可以存储多个值,而不仅仅是一个值。”

数组 - 1

“让我们从一个比喻开始。我们来比较房屋和公寓楼。一套普通房屋通常只住一个家庭,但一栋公寓楼可以分为很多套公寓。要将信件送给居住在房屋中的家庭,需要指出房屋的唯一地址。要将信件送给居住在公寓楼中的家庭,需要写明公寓楼的唯一地址和公寓号。”

“到目前为止,一切似乎都很清楚。”

“数组变量就像一个公寓楼变量。可以在其中存储很多(而不仅仅是一个)值。此类变量有多个公寓(元素),可以使用公寓号(索引)来引用它们。要执行此操作,请在数组变量名称后的方括号中指出要访问的数组元素的索引。非常简单。”

“但愿如此,艾莉。”

“公寓楼变量(数组变量)可以包含任何类型的元素。你只需写入‘TypeName[] variable_name’而不是‘TypeName variable_name’。”

下面是一些示例:

代码 说明
String[] list = new String[5];
创建包含 5 个元素的 String 数组
System.out.println(list[0]);
System.out.println(list[1]);
System.out.println(list[2]);
System.out.println(list[3]);
System.out.println(list[4]);
将显示五个‘null’值。

要访问特定数组元素的值,请使用方括号和元素索引。

int listCount = list.length;
将值 5 赋给 listCount,这是 list 数组中元素的数量。
list.length 存储数组长度(元素数量)。
list[1] = "妈妈";
String s = list[1];
将对象分配给数组元素时,需要在方括号中指出元素索引。
for (int i = 0; i < list.length; i++)
{
     System.out.println(list[i]);
}
在屏幕上显示所有数组元素的值。

“太有趣了!”

“数组变量需要额外的初始化。”

—?

“对于常规变量,只需声明变量并赋予不同值。而对于数组,则稍微有点复杂。”

“必须先创建一个容纳 N 个元素的容器,然后才能开始将值放入容器中。”

代码 说明
String[] list = null;
list 数组变量为 null。它只能存储对包含元素的容器的引用。你必须单独创建容器。
String[] list = new String[5];
创建包含 5 个元素的容器,并分配对 list 变量的引用。此容器包含编号为 0、1、2、3 和 4 的 5 个公寓(元素)。
String[] list = new String[1];
创建包含 1 个元素的容器,并分配对 list 变量的引用。要向此容器内放入内容,我们要编写类似 list[0] = "哟!"; 的代码。
String[] list = new String[0];
创建包含 0 个元素的容器,并分配对 list 变量的引用。不能在此容器中存储任何内容。

“我明白了。现在越来越清楚了。”

“下面是一些有关数组的基本情况:”

1) 数组由很多元素构成。

2) 要访问某个元素,请指出其编号(索引)。

3) 所有元素都属于同一类型。

4) 所有元素的初始值都为 null;对于原始类型的数组,初始值为 0、0.0(对于小数)或 false(对于 boolean 值)。它与不在数组中的未初始化变量完全相同。

5) String[] list 仅声明一个变量。你需要先创建一个数组(容器),放入一些内容,然后才能使用它(请参见下面的示例)。

6) 创建数组(容器)对象时,需要指出其长度或元素数量。使用 new TypeName[n]; 执行此操作

数组 - 2

下面是一些示例:

代码 说明
String s;
String[] list;
s 等于 null
list 等于 null
list = new String[10];
int n = list.length;
list 变量存储对象的引用 – 一个 10 元素字符串数组
n 等于 10
list = new String[0];
现在,list 包含一个 0 元素数组。数组存在,但不能存储字符串。
list = null;
System.out.println(list[1]);
这将抛出异常(运行时错误),并且程序将异常终止:list 包含 null 引用。
list = new String[10];
System.out.println(list[11]);
这将抛出异常(运行时错误):数组索引超出范围。

如果 list 包含 10 个元素,则有效索引为:0、1、2、3、4、5、6、7、8 和 9(总共 10 个索引)。