首先介绍数组的三大基本特性:
- 一致性:数组只能保存相同数据类型元素。
- 有序性:数组中的元素是有序的,通过下标访问,下标从0开始。
- 不可变性:数组一旦初始化,则长度不可变。
Java中的数组本身是引用数据类型,长度属性是length,可分为一维数组和多维数组。数组是引用数据类型,引用数据类型在使用之前一定要做两件事:声明和初始化。
数组声明
语法如下:
元素数据类型[] 数组变量名;
元素数据类型 数组变量名[];
注意:数组声明完成后,数组的长度还不能确定,JVM(Java虚拟机)还没有给元素分配内存空间。java更推荐第一种声明方式。
数组初始化
声明完成就要对数组进行初始化,数组初始化的过程就是为数组每一个元素分配内存空间,并为每一个元素提供初始值。初始化之后数组的长度就确定下来不能再变化了。
提示:有些计算机语言提供了可变数据类型数组,即它的长度是可变的,这种数组本质上是创建了一个新的数组对象,并非是原始数组的长度发生了变化。
数组初始化可分为静态初始化和动态初始化。
静态初始化
静态初始化就是将数组的元素放到大括号中,元素之间用逗号分隔。例如:
int[] intArray = {1,2,3,4,5};
String[] strArray = {“张三”,“李四”,“王五”};
注意:静态初始化是在已知数组的每一个元素内容的情况下使用的。但很多情况下数据是从数据库或网络中获得的,在编程时不知道元素有多少,更不知道元素的内容,此时可采用动态初始化。
动态初始化
动态初始化使用new运算符分配指定的内存空间,语法如下:
new 元素数据类型[数组长度];
int[] intArray = new int[5];
intArray[0] = 1;
intArray[1] = 2;
intArray[2] = 3;
intArray[3] = 4;
intArray[4] = 5;
数组合并
数组长度是不可变的,想要合并两个不同的数组,不能通过在一个数组的基础上追加另一个数组实现,需要创建一个新的数组,新数组长度是两个数组长度之和。然后再将两个数组的内容导入到新数组中。
二维数组声明
语法:
元素数据类型[][] 数组变量名;
元素数据类型 数组变量名[][];
静态初始化
例如:int[][] intArray = {{1,2,3},{11,12,13},{21,22,23},{31,32,33}};
动态初始化
例如:int[][] intArray = new int[4][3];
不规则数组
int[][] intArray = {{1,2},{11},{21,22,23},{31,32,33}};
也可以:
int[][] intArray = new int[4][];
intArray[0] = new int[2];
intArray[1] = new int[1];
intArray[2] = new int[3];
intArray[3] = new int[3];