НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
455 of 1310 menu

Функция chunked

Функция chunked разбивает исходную коллекцию на части (чанки) указанного размера и возвращает список этих частей. Принимает один обязательный параметр size - размер чанка. Также может принимать необязательный параметр transform - функцию преобразования для каждого чанка. Работает с коллекциями: Array, List, Set, String и другими типами, реализующими интерфейс Iterable. Для Map функция chunked не доступна напрямую, но можно использовать entries.chunked().

Импорт

import kotlin.collections.chunked

Синтаксис

// Базовый синтаксис fun <T> Iterable<T>.chunked(size: Int): List<List<T>> // С преобразованием fun <T, R> Iterable<T>.chunked( size: Int, transform: (List<T>) -> R ): List<R>

Пример

Разобьем список чисел на части по 3 элемента:

val numbers = listOf(1, 2, 3, 4, 5, 6, 7) val res = numbers.chunked(3) println(res)

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

List<List<Int>> [[1, 2, 3], [4, 5, 6], [7]]

Пример

Разобьем массив символов на части по 2 элемента:

val chars = arrayOf('a', 'b', 'c', 'd', 'e') val res = chars.chunked(2) println(res)

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

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

Пример

Разобьем строку на части по 3 символа:

val text = "abcde" val res = text.chunked(3) println(res)

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

List<String> ["abc", "de"]

Пример

Разобьем Set на части с преобразованием каждого чанка в строку:

val set = setOf(1, 2, 3, 4, 5) val res = set.chunked(2) { chunk -> "Chunk: ${chunk.joinToString()}" } println(res)

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

List<String> ["Chunk: 1, 2", "Chunk: 3, 4", "Chunk: 5"]

Пример

Работа с Map через entries:

val map = mapOf("a" to 1, "b" to 2, "c" to 3, "d" to 4) val res = map.entries.chunked(2) println(res)

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

List<List<Entry<String, Int>>> [[a=1, b=2], [c=3, d=4]]

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

  • функцию windowed,
    которая создает скользящее окно по коллекции
  • функцию partition,
    которая разделяет коллекцию на две части по условию
  • функцию take,
    которая берет первые элементы коллекции
  • функцию drop,
    которая пропускает первые элементы коллекции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить