Вы только добавить один массив, так это изменить:
double[][] result = Arrays.copyOf(array, array.length + value.length);
к этому:
double[][] result = Arrays.copyOf(array, array.length + 1);
Каждый массив является объектом, даже примитивные массивы. Если бы вы добавили System.out.println(result[0].getClass().getSuperClass());
в свой код, он напечатал class java.lang.Object
.
Это означает, что каждый элемент «результата» является объектом. Когда вы вызываете Arrays.copyOf и запрашиваете больший массив, все дополнительные элементы имеют значение null (как указано в Arrays.copyOf documentation).
Это означает, что вы не можете легально получить доступ к result[result.length - 1][i]
, пока не установите result[result.length - 1]
на ненулевое значение. В частности, вы хотите установить его в новый двойной массив.
В Java все массивы имеют типизированный общественный клон() метод, так что вы можете сделать прочь с вашим для цикла, а просто позвонить:
result[result.length - 1] = value.clone();
вы так много VGR и Bubletan – Stella