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

Функция zip

Функция zip объединяет две коллекции в одну новую коллекцию, состоящую из пар элементов. Каждая пара содержит элемент из первой коллекции и соответствующий элемент из второй коллекции. Результирующая коллекция имеет размер, равный минимальному размеру из исходных коллекций.

Синтаксис

Для Iterable, List, Set:

infix fun <T, R> Iterable<T>.zip(other: Iterable<R>): List<Pair<T, R>>

Для Array:

infix fun <T, R> Array<out T>.zip(other: Array<out R>): List<Pair<T, R>>

Для Map (работает с ключами):

infix fun <K, V, R> Map<out K, V>.zip(other: Iterable<R>): List<Pair<Pair<K, V>, R>>

Пример

Объединим два списка с помощью функции zip:

val list1 = listOf('a', 'b', 'c') val list2 = listOf(1, 2, 3) val res = list1.zip(list2) println(res)

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

List<Pair<Char, Int>> [(a, 1), (b, 2), (c, 3)]

Пример

Функция zip работает с массивами:

val arr1 = arrayOf('a', 'b', 'c') val arr2 = arrayOf(1, 2, 3) val res = arr1.zip(arr2) println(res)

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

List<Pair<Char, Int>> [(a, 1), (b, 2), (c, 3)]

Пример

Функция zip работает с множествами:

val set1 = setOf('a', 'b', 'c') val set2 = setOf(1, 2, 3) val res = set1.zip(set2) println(res)

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

List<Pair<Char, Int>> [(a, 1), (b, 2), (c, 3)]

Пример

Если коллекции разного размера, результат будет иметь размер минимальной коллекции:

val list1 = listOf('a', 'b', 'c', 'd') val list2 = listOf(1, 2, 3) val res = list1.zip(list2) println(res)

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

List<Pair<Char, Int>> [(a, 1), (b, 2), (c, 3)]

Пример

Функцию можно использовать в инфиксной форме:

val list1 = listOf('a', 'b', 'c') val list2 = listOf(1, 2, 3) val res = list1 zip list2 println(res)

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

List<Pair<Char, Int>> [(a, 1), (b, 2), (c, 3)]

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

  • функцию unzip,
    которая разделяет коллекцию пар на две коллекции
  • функцию flatMap,
    которая преобразует каждый элемент в коллекцию и объединяет результаты
  • функцию map,
    которая преобразует каждый элемент коллекции
  • функцию plus,
    которая объединяет две коллекции в одну
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить