在计算机语言中数组是非常重要的集合类型,大部分计算机语言中数组具有如下三个基本特性:
- 一致性:数组只能保存相同数据类型元素,元素的数据类型可以是任何相同的数据类型。
- 有序性:数组中的元素是有序的,通过下标访问。
- 不可变性:数组一旦初始化,则长度(数组中预分配的元素个数)不可变。
一维数组: 声明数组,创建数组空间,初始化三步.
格式1: 元素类型[] 数组名(推荐采用) ;
格式2: 元素类型 数组名[] ;
其中,数组元素的类型可以是基本类型,也可以是类或接口。
数组初始化
声明完成就要对数组进行初始化,数组初始化的过程就是为数组每一个元素分配内存空间,并为每一个元素提供初始值。初始化之后数组的长度就确定下来不能再变化了。
数组初始化可以分为静态初始化和动态初始化。
静态初始化
静态初始化就是将数组的元素放到大括号中,元素之间用逗号(,)分隔。
使用场景: 在已知数组的每一个元素内容情况下使用的,这样一次到位。
示例代码如下:String[] strArray = {"张三","李四","王五"}; //静态初始化Stirng数组
动态初始化
动态初始化使用new运算符分配指定长度的内存空间,
语法如下:new 元素数据类型[数组长度] ;
new分配数组内存空间后,不同类型都会有默认值,如下图。
数据类型默认值
多维数组
二维数组声明
当数组中每个元素又可以带有多个下标时,这种数组就是“多维数组”。
Java中声明二维数组需要有两个中括号,具体有三种语法如下:
元素数据类型[][] 数组变量名;
元素数据类型 数组变量名[][];
元素数据类型[] 数组变量名[];
二维数组的初始化
二维数组的初始化也可以分为静态初始化和动态初始化。
静态初始化
int intArray[][] = { { 1, 2, 3 }, { 11, 12, 13 }, { 21, 22, 23 }, { 31, 32, 33 } };
提示 严格意义上说Java中并不存在真正意义上的多维数组,只是一维数组,不过数组中的元素也是数组,以此类推三维数组就是数组的数组的数组了,例如{ { {1, 2}, {3} }, { {21}, {22, 23} } }表示一个三维数组。
动态初始化
语法: new 元素数据类型[高维数组长度] [低维数组长度] ;
3. 不规则数组
由于Java多维数组是数组的数组,因此会衍生出一种不规则数组
动态初始化不规则数组比较麻烦,不能使用new int[4][3]语句,而是先初始化高维数组,然后再分别逐个初始化低维数组。代码如下:
int intArray[][] = new int[4][]; //先初始化高维数组为4
//逐一初始化低维数组
intArray[0] = new int[2];
intArray[1] = new int[1];
intArray[2] = new int[3];
intArray[3] = new int[3];
4. 其它
数组的内存结构数组中常见的Exception:
- 访问到不存在的角标: ArrayIndexOutOfBoundsException
网友评论