Функция slice

Функция slice возвращает новую коллекцию, содержащую элементы из исходной коллекции по указанным индексам или в указанном диапазоне. Функция доступна для массивов Array, списков List и других коллекций, поддерживающих доступ по индексу.

Синтаксис

kotlinfun <T> Iterable<T>.slice(indices: IntRange): List<T>
kotlinfun <T> Iterable<T>.slice(indices: Iterable<Int>): List<T>
kotlinfun <T> Array<T>.slice(indices: IntRange): List<T>
kotlinfun <T> Array<T>.slice(indices: Iterable<Int>): List<T>

Пример

Получим часть списка с индексами от 1 до 3:

kotlinval list = listOf('a', 'b', 'c', 'd', 'e')
val res = list.slice(1..3)
println(res)

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

kotlinList ['b', 'c', 'd']

Пример

Получим часть массива по конкретным индексам:

kotlinval array = arrayOf(1, 2, 3, 4, 5)
val indices = listOf(0, 2, 4)
val res = array.slice(indices)
println(res)

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

kotlinList [1, 3, 5]

Пример

Получим часть строки с помощью slice:

kotlinval str = "abcde"
val res = str.toList().slice(0..2)
println(res)

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

kotlinList ['a', 'b', 'c']

Пример

Использование slice с набором индексов:

kotlinval numbers = listOf(10, 20, 30, 40, 50, 60)
val selectedIndices = setOf(1, 3, 5)
val res = numbers.slice(selectedIndices)
println(res)

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

kotlinList [20, 40, 60]

Для каких типов коллекций работает

Функция slice работает со следующими типами коллекций:

Не работает с:

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

  • функцию take,
    которая возвращает первые n элементов коллекции
  • функцию takeLast,
    которая возвращает последние n элементов коллекции
  • функцию drop,
    которая возвращает коллекцию без первых n элементов
  • функцию subList,
    которая возвращает представление части списка