3

是否可以创建一个二维 int 数组,例如:

int n = 100;
int[][] [] a = new int[][] [n];

数组具有固定长度n,矩阵(2D 数组)具有不同的非零大小(至少1 x 1)。

为了性能,我想将其存储在堆栈中,而不是:

ArrayList<int[][]> a = new ArrayList<int[][]>(n);

据我所知,它将存储在堆上。

4

2 回答 2

4

创建 3D 阵列

int n = 100;
int[][][] a = new int[n][][];

这将创建 100 个任意维度的数组。

这几乎和(低)效率一样

List<int[][]> a = new ArrayList<int[][]>(n);
于 2012-08-15T18:36:24.177 回答
3

是否可以创建一个二维 int 数组,例如:

int n = 100;
int[][] [] a = new int[][] [n];

--> 这对语法无效,你会得到编译器错误。利用 :

int n = 100;
int[][] [] a = new int[n][] [];

但是a是一个对象,因为java中的数组是对象,因此a将存储在堆上而不是堆栈上。

于 2012-08-15T18:40:12.787 回答