如何在Java中复制具有未知列大小的二维数组?

时间:2016-01-28 17:30:22

标签: java arrays oop

对于学校工作,我需要为包含二维整数数组的类编写构造函数。构造函数复制传入的二维数组。下面是我到目前为止的代码。我当前的问题是当传入的数组的“列”大小未知时如何初始化数组。我认为我遇到的问题是在创建和初始化数组时。内部和外部阵列的长度未知。

 public IntMatrix (int[][] array)
    {_matrix = new int [array.length][array.length-1].length];
    for (int i = 0; i < array.length; i++) {
        for(int j=0; j < array[i].length; j++)
        _matrix[i][j]=array[i][j];
    }
}

2 个答案:

答案 0 :(得分:1)

正如我在评论中所说,你所拥有的是一系列数组:

public IntMatrix(int[][] array) {
    matrix = new int[array.length][];
    for (int i = 0; i < array.length; i++) {
        matrix[i] = new int[array[i].length];
        for(int j=0; j < array[i].length; j++) {
            matrix[i][j] = array[i][j];
        }
    }
}

答案 1 :(得分:0)

您始终可以通过myArray.length确定数组的大小,以便在迭代时为每个行/列分配。

然而,一个想法。将引用存储到您传递的数组中是否可以接受?它会改变你的课外吗?如果没有,那么如果您不必在内部重新创建数组,那么这可能是一个简单的解决方案。