我正在嘗試合并 array1 和 array2,因為它們可以是任意大小(array1 和 array 2 總是相同的大小)。我不知道如何計算這些列,因為我不知道它們有多大。
int[][] array1 = { {1,3},{11,12,13}, {6,3,32} };
int[][] array2 = { {1,4}, {1,2,3}, {21,7,23} };
int[][] bigArray = new int[array1.length][];
for (int i = 0; i < array1.length; i ) {
for (int j = 0; j < array1[i].length; j ) {
bigArray[i][j] = Math.max(array1[i][j], array2[i][j]);
}
}
我的問題是當我形成“bigArray”時,我在空括號中放了什么
編輯:我的預期結果應該是一個陣列,其中包含每個給定位置的最大值,即在這個位置中它將是 {{1,4},{11,12,13},{21,7,32}}
uj5u.com熱心網友回復:
Java 僅支持交錯陣列:外部陣列中的每個元素都指向記憶體中其他位置的另一個陣列。
你不要在第二個空括號里放任何東西。相反,您在回圈內初始化一個所需大小的新陣列并將其分配給插槽。這將保證每個嵌套陣列都具有所需的大小。
int[][] array1 = { {1,3},{11,12,13}, {6,3,32} };
int[][] array2 = { {1,4}, {1,2,3}, {21,7,23} };
int[][] bigArray = new int[array1.length][];
for (int i = 0; i < array1.length; i ) {
bigArray[i] = new int[array1[i].length];
for (int j = 0; j < array1[i].length; j ) {
bigArray[i][j] = Math.max(array1[i][j], array2[i][j]);
}
}
或者:
int[][] array1 = { {1,3},{11,12,13}, {6,3,32} };
int[][] array2 = { {1,4}, {1,2,3}, {21,7,23} };
int[][] bigArray = new int[array1.length][];
for (int i = 0; i < array1.length; i ) {
int[] a = new int[array1[i].length];
for (int j = 0; j < a.length; j ) {
a[j] = Math.max(array1[i][j], array2[i][j]);
}
bigArray[i] = a;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/510512.html
標籤:爪哇数组合并
