Функция copyInto
Функция copyInto выполняет копирование элементов
из исходного массива в целевой массив. Работает только
с массивами (Array) и не работает с другими
типами коллекций (List, Set, Map).
Позволяет указать начальную позицию для вставки
в целевом массиве и диапазон копируемых элементов
из исходного массива.
Импорт
import kotlin.collections.copyInto
Синтаксис
fun <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:
val source = arrayOf('a', 'b', 'c', 'd', 'e')
val destination = arrayOf('1', '2', '3', '4', '5')
source.copyInto(destination)
println(destination.contentToString())
Результат выполнения кода:
Array<Char> ['a', 'b', 'c', 'd', 'e']
Пример
Копируем элементы с указанием позиции вставки в целевом массиве:
val source = arrayOf('a', 'b', 'c')
val destination = arrayOf('1', '2', '3', '4', '5')
source.copyInto(destination, destinationOffset = 1)
println(destination.contentToString())
Результат выполнения кода:
Array<Char> ['1', 'a', 'b', 'c', '5']
Пример
Копируем часть элементов из исходного массива:
val 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())
Результат выполнения кода:
Array<Char> ['b', 'c', 'd', '4', '5']
Пример
Комбинируем несколько параметров для точного контроля процесса копирования:
val 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())
Результат выполнения кода:
Array<Int> [1, 2, 20, 30, 40, 6, 7, 8, 9]
Примечания
Функция copyInto работает только с массивами
типа Array. Для других типов коллекций
используйте соответствующие методы:
- Для
List-addAll - Для
Set-addAll - Для
Map-putAll
Смотрите также
-
функцию
copyOf,
которая создает копию массива -
функцию
copyOfRange,
которая создает копию части массива -
функцию
addAll,
которая добавляет все элементы коллекции -
функцию
putAll,
которая копирует все пары ключ-значение в карту