我正在浏览本季度学到的所有内容,并重新研究我认为我没有真正掌握的主题。其中之一是添加第三个2D阵列的概念,该阵列存储先前2D阵列的信息。
到本季度末我应该知道的具体说法是:
"给定两个2D数组,将它们添加到第三个2D数组"
我试图这样做:
public static void main (String[] args){
int [] [] arrayOneTwoD= {{5,4,3,2,1},{1,2,3,4,5}};
int [] [] arrayTwoTwoD={{9,8,7,6,5},{5,6,7,8,9}};
int [][] thirdArray= new int [4][4];
thirdArray(arrayOneTwoD,arrayTwoTwoD,thirdArray);
}
public static void thirdArray (int [][] arrayOneTwoD, int [][] arrayTwoTwoD, int [] []thirdArray){
for(int i = 0; i < 3; ++i) {
for(int j = 0; j < 3; ++j) {
thirdArray[i][j] = arrayOneTwoD[i][j] + arrayTwoTwoD[i][j];
}
}
}
我在堆栈溢出上多次搜索这个主题但是没有任何东西可以打印到第三个2D阵列中,只能从一个2D阵列打印到另一个2D阵列。
我做错了什么?
答案 0 :(得分:0)
你应该这样做:
public static void main (String[] args){
int [][] arrayOneTwoD= {{5,4,3,2,1},{1,2,3,4,5}};
int [][] arrayTwoTwoD={{9,8,7,6,5},{5,6,7,8,9}};
int [][] thirdArray = thirdArray(arrayOneTwoD,arrayTwoTwoD);
}
public static int[][] thirdArray(int[][] arrayOneTwoD, int[][] arrayTwoTwoD){
// assuming both arrays have the same dimensions
int[][] thirdArray = new int[arrayOneTwoD.length][arrayOneTwoD[0].length];
for(int i = 0; i < arrayOneTwoD.length; ++i) {
for(int j = 0; j < arrayOneTwoD[0].length; ++j) {
thirdArray[i][j] = arrayOneTwoD[i][j] + arrayTwoTwoD[i][j];
}
}
return thirdArray;
}
在初始化第3个2D阵列时,您想要计算出您添加的数组的尺寸,而不是硬编码值。在迭代for循环时,您还需要这些维度。如果您要添加的两个2D阵列具有不同的尺寸,则答案会变得复杂一些。