Java:2D int数组的固定大小数组

时间:2012-08-15 18:29:17

标签: java performance multidimensional-array

是否可以创建一个2D int数组数组,如:

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

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

对于性能我想将它存储在堆栈中,而不是像:

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

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

2 个答案:

答案 0 :(得分:4)

创建3D阵列

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

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

这几乎和

一样有效
List<int[][]> a = new ArrayList<int[][]>(n);

答案 1 :(得分:3)

  

是否可以创建一个2D int数组数组,如:

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

- &GT;这对语法无效,您将收到编译器错误。使用:

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

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

相关问题