Spec-Zone.ru › Kotlin 1.7

Операции со множествами

В пакете Kotlin collections содержатся функции-расширения для популярных операций со множествами: нахождения пересечений, объединения или вычитания коллекций друг из друга.

Для объединения двух коллекций в одну используйте функцию union(). Её можно использовать в инфиксной форме a union b. Обратите внимание, что для упорядоченных коллекций порядок операндов важен: в результирующей коллекции элементы первого операнда идут перед элементами второго.

Для нахождения пересечения между двумя коллекциями (элементы, присутствующие в обеих), используйте intersect(). Для нахождения элементов коллекции, отсутствующих в другой коллекции, используйте subtract(). Обе эти функции также можно вызывать в инфиксной форме, например, a intersect b.

fun main() {
//sampleStart
    val numbers = setOf("one", "two", "three")

    println(numbers union setOf("four", "five"))
    println(setOf("four", "five") union numbers)

    println(numbers intersect setOf("two", "one"))
    println(numbers subtract setOf("three", "four"))
    println(numbers subtract setOf("four", "three")) // same output
//sampleEnd
}

Вы также можете применить union, intersect, и subtract к List. Однако, их результат всегда является Set, даже для списков. В этом результате все дублирующиеся элементы объединяются в один, и доступ к элементам по индексу недоступен.

fun main() {
//sampleStart
    val list1 = listOf(1, 1, 2 ,3, 5, 8, -1)
    val list2 = listOf(1, 1, 2, 2 ,3, 5)
    println(list1 intersect list2) // result on two lists is a Set
    println(list1 union list2)     // equal elements are merged into one
//sampleEnd
}
Последнее изменение: 23 декабря 2021
Операции со списками Операции со словарями

© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/set-operations.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API