java的二维数组

来源:百度知道 编辑:UC知道 时间:2024/06/23 13:12:37
class Temp4{
public static void main(String args[]){
int a[][] = new int[2][];
a[0] = new int[2];
a[1] = new int[3];
a[0][0] = 10;
a[1][1] = 20;
for(int j=0;j<a.length;j++){
for(int i=0;i<a[j].length;i++){
System.out.println(a[j][i] + " ");
System.out.println();
}
}
}

下面的什么意思?谢谢
a[0] = new int[2];
a[1] = new int[3];
a[0][0] = 10;
a[1][1] = 20;

a[0] = new int[2];
因为是二维的
所以a 是一个数组对象的数组引用(数组是对象)
a[0] 是一个整型数组的数组引用
a[0][0] 才是整型

所以上一句的意思是 给这个整型数组引用 分配一个整型数组
如果没那句
a[0]就是null

说得简单点,一维数组a[]的引用 a是一个对象引用,指向一个数组
二维的时候 第二维类似上面一维,而第一维指向的不是具体数据的数组,而是一个引用的数组 以此类推
三维的时候 第一维指向一个二维数组引用的数组 就像树一样,支上再长支,分叉,最后一级才是数据类型(叶子),其他的 都是指向引用的数组

好比,家庭里 人为基本数据类型 在家庭(一维数组,把每个人编号)
在村里,以家庭编号,
在镇上,以村编号, 而除了最低级别的 人,其他都是不同维数的数组

int a[][] = new int[2][];
a[0] = new int[2];
a[1] = new int[3];
a[0][0] = 10;
a[1][1] = 20;
执行以后的数据如下:
第一步:数组初始化,初始化后数组数据如下
0,0 //a[0]
0,0,0 //a[1]
第二步:数据赋值
10,0
0,20,0
看明白了吗?

二维数组其实就是数组的数组,一个二维数组是由若干个一维数组组成的。
int a[][] = new int[2][]; 表示二维数组a是由2个一维数a[1],a[2]组成。
第一个:a[0] = new int[2]; 表示数组a[0] 有2个数。
第二个:a[1] = new int[3]; 表示数组a[1] 有3个数
你的输出语句如果这么写就能看出来
for (int j = 0; j < a.length; j++) {
for (int