数组的基础知识
要点提示 : 一旦数组被创建 , 它的大小是固定的 。 使用一个數组引用变量 , 通过下标来访问數组中的元素。
数组是用来存储数据的集合 , 但是 , 通常我们会发现把数组看作一个存储具有相同类型的变量集合会更有用 。 无须声明单个变量 , 例如 : numberO , numberl , number 99 , 只要声明一个数组变量 numbers , 并且用 numbers [ 0 ] , numbers [ 1 ] ,...,numbers [99] 来表示单个变童 。 本节介绍如何声明数组变量 、 创建数组以及使用下标变量处理数组 。
声明数组变置
为了在程序中使用数组 , 必须声明一个引用数组的变量 , 并指明数组的元索类型 。 下面是声明数组变量的语法 :
double [ ] myList ;
注意 : 也可以用 elementTypearrayRefVar [ ] ( 元素类型数组引用变量 [ ] ) 声明数组变量 。 这种来自 C / C + + 语言的风格被 Java 采纳以适用于 C / C + + 程序贞 。 推荐使用elementType [ ] arrayRefVar ( 元素类型 [ ] 数组引用变量 ) 风格.
创建数组
不同于基本数据类型变量的声明 , 声明一个数组变量时并不在内存中给数组分配任何空间 。 它只是创建一个对数组的引用的存储位置 。 如果变量不包含对数组的引用 , 那么这个变量的值为 null 。 除非数组已经被创建 , 否则不能给它分配任何元素 。 声明数组变量之后,可以使用下面的语法用 nev * 操作符创建数组 , 并且将它的引用賦给一个变量 :arrayRefVar = new e 1 ementType [ arrayS 1 ze ] ;
这条语句做了两件事情 : 1 ) 使用 new elementType [ arrayS " ize ] 创建了一个数组 ; 2 )把这个新创建的数组的引用陚值给变暈 arrayRefVar。
声明一个数组变量 、 创建数组 、 然后将数组引用賦值给变量这三个步驟可以合并在一条语句里 , 如下所示 :
elementType 口 arrayRefVar = new elementType [ arraySize ] ;
( 元素类型 [ ] 数组引用变量 = new 元素类型 [ 数组大小 ] ;
或
elementType arrayRefVar [ ] * new e 1 ementType [ arraySize ];
( 元素类型数组引用变量 = new 元素类型 [ 数组大小 ] ;
注意 : 一个數组变量看起来似乎是存储了一个數组 , 但实际上它存储的是指向数组的引用 。 严格地讲 , 一个數组变量和一个教组是不同的 , 但多教情况下它们的差别是可以忽略的 。 因此 , 为了简化 , 通常可以说 myList 是一个数组 , 而不用更长的陈述 : myList 是一个含有 10 个 double 型元素數组的引用变量 。
数组大小和默认值
当给数组分配空间时 , 必须指定该数组能够存储的元素个数 , 从而确定数组大小 。 创建数组之后就不能再修改它的大小 。 可以使用 arrayRefVar . length 得到数组的大小。可以使用 arrayRefVar . length 得到数组的大小 。
当创建数组后 , 它的元素被賦予默认值 , 数值型基本数据类型的默认值为 0 , char 型的默认值为 AuOOOO ’ , boolean 型的默认值为 false。
访问数组元素
数组元素可以通过下标访问 。 数组下标是基于 0 的 , 也就是说 , 其范围从 0 开始到arrayRefVar . length - 1 结束 。
瞀告 : 一些语言使用圆括号引用数组元素 , 例如 myList ( 9 ) 。 而 Java 语言使用方括号。
数组初始化语法
Java 有一个简捷的标记 , 称作数组初始化语法 , 它使用下面的语法将声明数组 、 创建数组和初始化数组结合到一条语句中 :
例如 :
这条语句声明 、 创建并初始化包含 4 个元素的数组 myLi st , 它等价于下列语句 :
警告 : 数组初始化语法中不使用操作符 new 。 使用数组初始化语法时 , 必须将声明 、 创建和初始化数组都放在一条语句中 。 将它们分开会产生语法嫌谈 。