Я определил объект int[][]
. Поскольку это объект, если я отправлю его методу в качестве параметра, он отправит его только ссылку, поэтому любые изменения в массиве метода будут влиять на него в основной программе. Поэтому я хотел бы сделать клон этого объекта внутри метода, но я не уверен, как это сделать.Java int [] [] объект массива
Я думал что-то вроде этого:
private void myMethod(int[][] array)
{
//Define our temporary array (clone)
int[][] newArray = new int[3][3];
//Go through the elements of the array
for .... row = 0; row < ..; row++
for ..... col = 0; col < ..; col++
//Copy individual elements from one array to another
newArray[row][col] = array[row][col];
}
но будет выше скопировать код каждый элемент из массива в newArray в качестве значения (так ... клон пункта), или просто ссылка?
Если да, то как это можно осуществить. Если бы я использовал ArrayLists вместо объектов int[][]
, существует метод clone() или что-то в этом роде, но у меня нет этого метода для объектов int[][]
:(
Кроме того, если я не ошибаюсь, если i сделайте это внутри метода newArray = array
, который снова скопирует ссылку, так что оба будут указывать на тот же объект int[][]
:(
PS Я знаю, я мог бы просто проверить это, но я бы хотел обсудить это с вами, ребята немного, и посмотрите, что именно.
Почему бы вам не проверить его, выяснить, что происходит, а затем задать разъясняющие вопросы о чем-то, что вы не понимаете? –
Я не думаю, что int [] [] - это объект, поэтому вам не нужно беспокоиться об этом. –
@drgomesp: Да, * все * массивы являются ссылочными типами. –