我有以下2D数组:
int[][] matrixA = { {1, 2 ,3}, {4, 5, 6} };
我想创建另一个具有相同大小matrixA
的2D数组,我的问题是如何使用,与普通数组相同,即int[] arrayA = {10, 12, 33, 23}, int[] arrayB = new int[arrayA.length]
int[][] matrixB = new int[matrixA.length][]
我可以这样做,只需要将一个阵列分配两个位置,然后让其余阵列填充for循环吗?或者有更正确和灵活的方法来做到这一点?
答案 0 :(得分:3)
为什么不使用普通的多维数组初始化语法?
int[][] a = {{1,2,3}, {4,5,6}};
int[][] b = new int[a.length][a[0].length];
这似乎非常有效。这是一个小循环,测试所有条目确实存在,并且我们没有得到任何AIOOBE:
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[0].length; j++) {
b[i][j] = a[i][j];
}
}
这显然假设您正在处理矩形矩阵,即所有行必须具有相同的尺寸。如果你有一些奇怪的锯齿状数组,你必须使用一个循环来分别初始化每一行。