当我将2-d数组与偶数长度的行连接起来时,这是有效的:
public static int[] concArr(int[][] arr){
int[] oneD = new int[arr.length * arr.length];
for(int i = 0; i < arr.length; i ++)
{
for(int j = 0; j < arr.length; j ++)
{
oneD[(i * arr.length) + j] = arr[i][j];
}
}
return oneD;
}
但是,如果数组不均匀,即:
{ {1, 2, 3},
{4},
null,
{},
{5,6}};
然后代码将无法正常工作。我该怎么做?
答案 0 :(得分:0)
1。 for(int j = 0; j < arr[i].length; j ++)
注意arr[i].length
而不是arr.length
,您必须考虑当前行的长度,因为这些行的长度不相等。
2。而不是oneD[(i * arr.length) + j]
使用变量来保存结果数组中的当前位置;此变量初始化为0,并在内循环中递增。