普通多维数组的构建相对来说都是规则的,比如定义一个二维数组:int[][] a = new int[10][5],这个数组是一个10行5列的二维数组。
上述构建的二维数组是每行的列数都是相同的,但是对于想构建每一行的列数有所不同的数组,则需要其他的定义方式。
在Java中,实际上没有多维数组,只有一维数组,多维数组称为“数组的数组”;对于一个二维数组来说,首先把它看作一维数组,这个一维数组中的每一个元素又是一个一维数组,定义一个数组:int[][] a = new int[2][3],则 a[0] 和 a[1] 各为一个长度为3的一维数组。
与此类似,想要构建一个 a[0] 的长度为2和 a[1] 的长度为3的不规则数组如下:
先定义一个二维数组:
int[][] a = new int[2][];
接下来为每一行分配对应的列数即可:
a[0] = new int[2];
a[1] = new int[3];
这样便构建出来了一个每行不同列数的不规则多维数组,这个不规则数组可以应用在一些任务中,比如在分类中,不同数据集的类别数不同,这个方法可以统计每个数据集中不同类别的实例数。