Скопируйте 2d массив в отдельную переменную в Kotlin - PullRequest
0 голосов
/ 02 октября 2018

Итак, у меня есть этот двумерный массив, и я хочу скопировать его в другую отдельную переменную .Я пытался использовать System.arrayCopy и Array.copyOf, но оба, похоже, просто возвращают ссылку на массив, который я пытаюсь скопировать, а не новый массив.Существуют ли какие-либо методы для этого или я должен сам их создать?

1 Ответ

0 голосов
/ 02 октября 2018

Котлин, как и Java, на самом деле не имеет многомерных массивов.То, что у него есть, это массивы массивов.Итак, у вас есть массив, каждый элемент которого является другим массивом.В большинстве случаев он выглядит как двумерный массив, но вы нашли случай, когда его нет!

Что делают такие функции, как System.arrayCopy, - это создание копии внешнего массива;но это мелкая копия , которая по-прежнему ссылается на те же внутренние массивы, что и оригинал.

Вам нужна глубокая копия , которая создает копии всехтоже внутренние массивы.

См. Как скопировать двумерный массив в Kotlin? или Как сделать глубокую копию двумерного массива в Java? длянесколько примеров этого.

...