1.二维数组声明初始化
public class TestDemo {
public static void main(String[] args) {
// 二维数组的声明,一下三种形式均可
int[][] intArray;
float[] floatArray[];
double[] doubleArray[]; //这种方式也可以
// 创建一个数组 (二维数组也有默认值)
intArray = new int[3][3]; // 第一个'[]'中填写行数,第二个'[]'中填写列数
// 给二维数组的元素赋值
intArray[1][2] = 9;
//声明数组的同时进行创建
char[][] ch= new char[3][5];
// 创建数组的同时,只指定行数。new float[][];和new float[][3];这两种写法错误
floatArray = new float[3][];
// 此时,若取 floatArray[2][1],会报空指针异常。
/**
* 一个行数为3的二维数组可以认为由3个一维数组组成,对于floatArray[2][1],其floatArray[2]可以代表该二维
* 数组的第三个一维数组,因为其三个一维数组均未被初始化,所以上面会报空指针异常。
* 解决方案如下:
*/
floatArray[0] = new float[3]; // 第一行有3列
floatArray[1] = new float[4]; // 第二行有4列
floatArray[2] = new float[5]; // 第三行有5列
// 此时,二维数组中的每一个元素都已经被默认初始化了,再进行 floatArray[2][1]便不会有空指针异常了
}
}
(1)二维数组初始化时,行数一定要有,列数可有可没有;
(2)二维数组初始化,一定要二次初始化,否则会空指针异常
注:根据以往经验,二维数组使用的并不多
2.二维数组,直接初始化,取值
public class TestDemo {
public static void main(String[] args) {
int[][] num = {{1,2,3},{4,5},{6,7,8,9}};
// num.length:二维数组的行数
for(int i=0;i<num.length;i++){
// num[i].length:二维数组第i-1行的列数
for(int j=0;j<num[i].length;j++){
System.out.print(num[i][j]+" ");
}
System.out.println();
}
}
}