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