如何将不均匀的二维数组连接成一维数组(java)

时间:2014-03-16 12:27:01

标签: java arrays multidimensional-array

当我将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}};

然后代码将无法正常工作。我该怎么做?

1 个答案:

答案 0 :(得分:0)

1。 for(int j = 0; j < arr[i].length; j ++)

注意arr[i].length而不是arr.length,您必须考虑当前行的长度,因为这些行的长度不相等。

2。而不是oneD[(i * arr.length) + j]使用变量来保存结果数组中的当前位置;此变量初始化为0,并在内循环中递增。