需要一些技巧,从给定的二维数组中构造矩阵

时间:2018-12-02 06:51:19

标签: java arrays

好吧,我需要做第一个构造函数,并且在方法中给了我一个我需要从中复制的数组。 方法是- 公共Matrix(int [] []数组)

这是我尝试过的:

public Matrix(int[][] array)
{
    for(int i =0; i < array.length; i++ ) // running all over the rows
    {
        for ( int j=0; j < array[i].length; j++ ) // running all over the columns
        {

            _matrixArray[i][j]=array[i][j]; 


        }    
    }
}

它说即时消息指向空值?我正在尝试避免联盟,是的,请在此问题上可能需要一些帮助:)

2 个答案:

答案 0 :(得分:0)

您需要实例化数组,然后才能向其中添加元素。例如:

class Matrix {

    private int[][] _matrixArray;


    public Matrix(int[][] array)
    {
        this._matrixArray = new int[array.length][array[0].length];

        for (int i = 0; i < array.length; i++)
        {
            for (int j = 0; j < array[i].length; j++)
            {
                this._matrixArray[i][j]=array[i][j]; 
            }    
        }
    }

}

答案 1 :(得分:0)

您必须先初始化matrix。但是请注意,[][]表示数组的数组,因此通常情况下,不同的行可能具有不同的库仑数。

public class Matrix {

    private final int[][] matrix;

    public Matrix(int[][] arr) {
        matrix = new int[arr.length][];

        for (int row = 0; row < arr.length; row++)
            matrix[row] = Arrays.copyOf(arr[row], arr[row].length);
    }

}