Двойной массив Java, не производящий глубокую копию - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть класс, в котором есть конструктор.Этот конструктор должен создать глубокую копию переданного массива. Я не думаю, что это так, поскольку он не проходит некоторые тесты, когда я манипулирую полученной матрицей.

Я пытался создать копиюsubarray и использовал это для создания другого массива с arrays.copyOf.Но я думаю, что это все равно приводит к использованию тех же адресов нет?

public Matrix(int rows, int columns, double... elements) {
        // remember double   ... elements means varargs

        if (elements.length != rows * columns) {
            throw new IllegalArgumentException("Illegal number of rows and columns for elements given");
        }
        this.rows = rows;
        this.columns = columns;
        this.matrix = new double[this.rows][this.columns];
        for(int i = 0; i<this.rows; i++){

              double[] row = Arrays.copyOfRange(elements, i*columns, (i+1) * columns);
              this.matrix[i] = Arrays.copyOf(row,columns);
        }

Я бы хотел, чтобы полученный this.matrix имел уникальные адреса элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...