Функция copyInto

Функция copyInto выполняет копирование элементов из исходного массива в целевой массив. Работает только с массивами (Array) и не работает с другими типами коллекций (List, Set, Map). Позволяет указать начальную позицию для вставки в целевом массиве и диапазон копируемых элементов из исходного массива.

Импорт

kotlinimport kotlin.collections.copyInto

Синтаксис

kotlinfun <T> Array<out T>.copyInto(
  destination: Array<T>,
  destinationOffset: Int = 0,
  startIndex: Int = 0,
  endIndex: Int = size
): Array<T>

Параметры

destination - целевой массив, в который копируются элементы.

destinationOffset - позиция в целевом массиве, с которой начинается вставка элементов (по умолчанию 0).

startIndex - начальный индекс в исходном массиве (по умолчанию 0).

endIndex - конечный индекс в исходном массиве (по умолчанию размер массива).

Пример

Копируем все элементы из массива source в массив destination:

kotlinval source = arrayOf('a', 'b', 'c', 'd', 'e')
val destination = arrayOf('1', '2', '3', '4', '5')

source.copyInto(destination)
println(destination.contentToString())

Результат выполнения кода:

kotlinArray<Char> ['a', 'b', 'c', 'd', 'e']

Пример

Копируем элементы с указанием позиции вставки в целевом массиве:

kotlinval source = arrayOf('a', 'b', 'c')
val destination = arrayOf('1', '2', '3', '4', '5')

source.copyInto(destination, destinationOffset = 1)
println(destination.contentToString())

Результат выполнения кода:

kotlinArray<Char> ['1', 'a', 'b', 'c', '5']

Пример

Копируем часть элементов из исходного массива:

kotlinval source = arrayOf('a', 'b', 'c', 'd', 'e')
val destination = arrayOf('1', '2', '3', '4', '5')

source.copyInto(
  destination,
  startIndex = 1,
  endIndex = 4
)
println(destination.contentToString())

Результат выполнения кода:

kotlinArray<Char> ['b', 'c', 'd', '4', '5']

Пример

Комбинируем несколько параметров для точного контроля процесса копирования:

kotlinval source = arrayOf(10, 20, 30, 40, 50)
val destination = arrayOf(1, 2, 3, 4, 5, 6, 7, 8, 9)

source.copyInto(
  destination,
  destinationOffset = 2,
  startIndex = 1,
  endIndex = 4
)
println(destination.contentToString())

Результат выполнения кода:

kotlinArray<Int> [1, 2, 20, 30, 40, 6, 7, 8, 9]

Примечания

Функция copyInto работает только с массивами типа Array. Для других типов коллекций используйте соответствующие методы:

Смотрите также

  • функцию copyOf,
    которая создает копию массива
  • функцию copyOfRange,
    которая создает копию части массива
  • функцию addAll,
    которая добавляет все элементы коллекции
  • функцию putAll,
    которая копирует все пары ключ-значение в карту