使用java定义一个二维数组,但是每个第二位数组的长度不一致,类似:[[1],[1,2,3],[4,5]]

public static void test0() {

int [][] arrays;//声明一个二维数组

//初始化该二维数组的第一维
arrays =new int [3][];
System.out.println(arrays.length);//3

//初始化该二维数组的第二维(不等长)
for(int i=0;i<arrays.length;i++){
arrays[i]=new int [i+1];
}
System.out.println(arrays.length);//3

//赋值该二维数组
for(int i=0;i<arrays.length;i++){
for(int j=0;j<arrays[i].length;j++){
arrays[i][j]=i+j;
}
}

//输出显示该二维数组
for(int i=0;i<arrays.length;i++){
for(int j=0;j<arrays[i].length;j++){
System.out.print("["+i+"]["+j+"]:"+arrays[i][j]+" ");
}
System.out.println();
}

for (int[] demen1 : arrays) {
for (int demen2 : demen1) {
System.out.print(demen2);
System.out.print(" ");
}
System.out.println();
}
}

运行结果:

[0][0]:0   
[1][0]:1 [1][1]:2
[2][0]:2 [2][1]:3 [2][2]:4
0
1 2
2 3 4

通过以上,可以发现二维数组就是每个数组元素又是一个一维数组的一维数组。所以,我们可以这样定义:

int[][] a = new int[][]{{1,2,3},{1},{2,4,5}};
for (int[] tmp1:a) {
for (int tmp2:tmp1) {
System.out.print(tmp2);
System.out.print(" ");
}
System.out.println();
}