在Java中数组长度并不是其类型的一部分, 多维数组的行没有必要有同样的长度,也就是说,多维数组不必是矩形。
如下的三角形数组:
package myTest;
import java.util.Arrays;
public class Array2D {
public static void main(String arg[]) {
int[][] triangle = new int[5][];
for(int i = 0; i < triangle.length; i++) {
triangle[i] = new int[i + 1]; //There is i+1 element in line i.
for(int j = 0; j < i + 1; j++) {
triangle[i][j] = i + j;
}
System.out.println(Arrays.toString(triangle[i]));
}
System.out.println("**********");
int[][] dtriangle = new int[5][];
int len = dtriangle.length;
for(int i = 0; i < len; i++) {
dtriangle[i] = new int[len - i];
for(int j = 0; j < len - i; j++) {
dtriangle[i][j] = i + j;
}
System.out.println(Arrays.toString(dtriangle[i]));
}
}
}
则输出结果为:
[0]
[1, 2]
[2, 3, 4]
[3, 4, 5, 6]
[4, 5, 6, 7, 8]
**********
[0, 1, 2, 3, 4]
[1, 2, 3, 4]
[2, 3, 4]
[3, 4]
[4]