当数组中每个元素都只带有一个下标时,这种数组就是“一维数组”。一维数组(one-dimensional array)实质上是一组相同类型数据的线性集合,是数组中最简单的一种数组。
数组是引用数据类型,引用数据类型在使用之前一定要做两件事情:声明和初始化。所以本文将重点介绍一维数组的创建、初始化和使用。
创建一维数组
为了在程序中使用一个数组,必须声明一个引用该数组的变量,并指明整个变量可以引用的数组类型。声明一维数组的语法格式为:
type[] arrayName; // 数据类型[] 数组名;
或者
type arrayName[]; // 数据类型 数组名[];
可见数组的声明有两种形式:一种是中括号”[]“跟在元素数据类型之后,另一种是中括号”[]“跟在变量名之后。
对于以上两种语法格式而言,Java 更推荐采用第一种声明格式,因为第一种格式不仅具有更好的语意,而且具有更好的可读性。对于第一种格式type[] arrayName
,很容易理解这是定义一个变量,其中变量名是 arrayName,而变量类型是 type[]。
前面已经指出:type[] 确实是一种新类型,与 type 类型完全不同(例如 int 类型是基本类型,但 int[] 是引用类型)。因此,这种方式既容易理解,也符合定义变量的语法。但第二种格式type arrayName[]
的可读性就差了,看起来好像定义了一个类型为 type 的变量,而变量名是 arrayName[],这与真实的含义相去甚远。
可能有些读者非常喜欢type arrayName[]
这种定义数组的方式,这可能是因为早期某些计算机读物的误导,从现在开始最好就不要再使用这种糟糕的方式了。
提示:Java 的模仿者 C# 就不再支持type arrayName[]
这种语法,它只支持第一种定义数组的语法。越来越多的语言不再支持type arrayName[]
这种数组定义语法。
以上两种格式都可以声明一个数组,其中的数据类型既可以是基本数据类型,也可以是引用数据类型。数组名可以是任意合法的变量名。声明数组就是要告诉计算机该数组中数据的类型是什么。例如:
- int[] score; // 存储学生的成绩,类型为整型
- double[] price; // 存储商品的价格,类型为浮点型
- String[] name; // 存储商品名称,类型为字符串型
在声明数组时不需要规定数组的长度,例如:
- int score[10]; // 这是错误的
注意:在声明数组变量时千万不要漏写[]。
分配空间
声明了数组,只是得到了一个存放数组的变量,并没有为数组元素分配内存空间,不