Java多维数组
说多维数组之前,说说简单的数组定义:
int[] a;
或者
int a[];
当然也可以一次性定义多个变量
int a[], b[],c[];
再简单不过了。
继续看看下面的呢
int[][] a[][][];
这是个几维数组? 恕我愚钝,尽管搞了这么多年java,还是第一次遇到这样的定义(因为工作中很少遇到这样的使用场景)。 先看看Java language specification 中对数组变量声明的定义.
type arrayName[][[]...];
或
type[][[]...] arrayName;
其实Java中的数组可以用矩阵来表示,比如 int[][] a[] 则可以看成:
int[][] a[] 等同于 int[][][] a ,你可以叫为三维数组, 所以 int[][] a[][][] 也同于 int[][][][][] a,叫为五维数组。
其实从Java language specification中可以看出 int[][] 可以理解为 type,尽管定义中指出不推荐 mixed notation 方式来声明多维数组, 但不影响这种表达式合法。