Java中,声明数组的语法有两种:
1.数据类型 数组名[];
2.数据类型[] 数组名;
例如:
int a[]; 与 int[] a;都是表示声明了一个整型数组a
二维数组的声明也类似。
来看看二维数组存分配方式:
例如:int a[][] = new int[2][3];
其内存空间分配示意图如下:
我画的图很丑,我想表示的意思是要注意:a.length是等于2,而不是2*3
再来个示例代码说明一下:
int a[] = new int[]{10,20,30,40,50};
System.out.println("a length:"+a.length);
for(int i:a){
System.out.println(i);
}
int b[][] = new int[3][4];
System.out.println("b length:"+b.length);
for(int i=0;i<b.length;i++){
for(int j=0;j<b[i].length;j++){
System.out.println("b["+i+"] length:"+b[i].length);
}
}
int c[][] = new int[3][];
c[0] = new int[2];
c[1] = new int[3];
c[2] = new int[2];
System.out.println("c length:"+c.length);
for(int i=0;i<c.length;i++){
for(int j=0;j<c[i].length;j++){
System.out.println("c["+i+"] length:"+c[i].length);
}
}
输出结果:
a length:5
10
20
30
40
50
b length:3
b[0] length:4
b[0] length:4
b[0] length:4
b[0] length:4
b[1] length:4
b[1] length:4
b[1] length:4
b[1] length:4
b[2] length:4
b[2] length:4
b[2] length:4
b[2] length:4
c length:3
c[0] length:2
c[0] length:2
c[1] length:3
c[1] length:3
c[1] length:3
c[2] length:2
c[2] length:2