Функция copyOfRange
Функция copyOfRange создает новый массив, содержащий элементы
из указанного диапазона исходного массива. Функция работает только
с массивами (Array) и не применяется к другим типам коллекций
таким как List, Set или Map. В первый параметр
передается начальный индекс (включительно), во второй параметр -
конечный индекс (исключительно).
Синтаксис
fun <T> Array<out T>.copyOfRange(fromIndex: Int, toIndex: Int): Array<T>
fun ByteArray.copyOfRange(fromIndex: Int, toIndex: Int): ByteArray
fun ShortArray.copyOfRange(fromIndex: Int, toIndex: Int): ShortArray
fun IntArray.copyOfRange(fromIndex: Int, toIndex: Int): IntArray
fun LongArray.copyOfRange(fromIndex: Int, toIndex: Int): LongArray
fun FloatArray.copyOfRange(fromIndex: Int, toIndex: Int): FloatArray
fun DoubleArray.copyOfRange(fromIndex: Int, toIndex: Int): DoubleArray
fun BooleanArray.copyOfRange(fromIndex: Int, toIndex: Int): BooleanArray
fun CharArray.copyOfRange(fromIndex: Int, toIndex: Int): CharArray
Пример
Скопируем элементы с индекса 1 по 4 (исключительно) из массива символов:
val original = charArrayOf('a', 'b', 'c', 'd', 'e')
val copy = original.copyOfRange(1, 4)
println(copy.contentToString())
Результат выполнения кода:
CharArray ['b', 'c', 'd']
Пример
Скопируем элементы с индекса 2 до конца массива целых чисел:
val numbers = intArrayOf(1, 2, 3, 4, 5)
val part = numbers.copyOfRange(2, numbers.size)
println(part.contentToString())
Результат выполнения кода:
IntArray [3, 4, 5]
Пример
Скопируем часть массива строк:
val words = arrayOf("apple", "banana", "cherry", "date", "elderberry")
val slice = words.copyOfRange(1, 3)
println(slice.contentToString())
Результат выполнения кода:
Array<String> ["banana", "cherry"]
Пример
Если конечный индекс превышает размер массива, элементы будут заполнены значениями по умолчанию:
val arr = intArrayOf(1, 2, 3)
val extended = arr.copyOfRange(0, 5)
println(extended.contentToString())
Результат выполнения кода:
IntArray [1, 2, 3, 0, 0]
Примечания
Функция copyOfRange работает только с массивами различных типов.
Для работы с другими типами коллекций (List, Set) используйте
функцию slice или subList.