0
我有一項任務,要求我將2D數組拼成單個數組。拼合成鋸齒狀的2D陣列
這是我到目前爲止有:
public static int[] flatenArray(int [][] a){
//TODO
int length = 0;
for(int y = 0; y < a.length; y++){
length += a[y].length;
}
int[] neu = new int[length];
int x = 0;
for (int i = 0; i < a.length; i++){
for(int j = 0; j < a[0].length; j++){
neu[x] = a[i][j];
x++;
}
}
return neu;
}
在做一個JUnit測試以下測試用例
assertArrayEquals(new int[] {1,2,3,4,5,6,7,8,9,10,11},Ass06.flatenArray(new int[][] {{1,2,3},{4,5,6},{7,8,9,10,11}}));
我收到以下錯誤:
arrays differed at element[9]; expected <10> but was <0>
不知怎的,在第三個「內部陣列」的陣列長度超過3的點,最後2個數字(「10,11」)未被複制進入新陣列。
'a [0] .length' - >'a [i] .length'。投票結束爲錯字。 – dasblinkenlight
@dasblinkenlight感謝隊友!這解決了它:)必須錯過! – Nezzrak