我需要帮助写一个方法,找出2个不同大小的二维数组的总和。
public static int[][] summary(int[][] tab1, int[][] tab2, int x) {
int[][] finalTab = new int[4][5]; // I took sizes of bigger one
if (x < 0) {
for (int i = 0; i < finalTab.length - 1; i++) {
for (int j = 0; j < finalTab[i].length - 1; j++) {
finalTab[i][j] = tab1[i][j] + tab2[i][j];
if (tab1[i][j] == 0) {
finalTab[i][j] = tab2[i][j];
}
}
}
for (int i = 0; i < finalTab.length; i++) {
for (int j = 0; j < finalTab[i].length; j++) {
System.out.print(" " + finalTab[i][j] + " ");
}
System.out.println();
}
}
return finalTab;
}
输入为:
int [][] tab1 = {
{2, 4, 6, 8},
{2, 4, 6, 8},
{2, 4, 6, 8},
};
int [][] tab2 = {
{1, 3, 5, 7, 9},
{1, 3, 5, 7, 9},
{1, 3, 5, 7, 9},
{1, 3, 5, 7, 9},
};
输出为:
3 7 11 15 0
3 7 11 15 0
3 7 11 15 0
0 0 0 0 0
输出应为:
3 7 11 15 9
3 7 11 15 9
3 7 11 15 9
1 3 5 7 9
如何替换所有的 0
与tab2的索引对应的数字?
4条答案
按热度按时间kmpatx3s1#
我是这样做的:
uelo1irk2#
你可以用
IntStream.of(int...)
方法来连接来自不同源的两个元素:另请参见:
•将二维数组中每列的所有元素相加
•仅使用一个分号在java中旋转int数组
mu0hgdu03#
这是一个更直接的解决方案:
uz75evzq4#
你可以做得更普通些
所以你可以这样称呼它
或