Set: специфичные операции
Стандартная библиотека Kotlin включает в себя функции-расширения для популярных операций с множествами (Set
): поиск пересечений, слияние или вычитание коллекций друг из друга.
Чтобы объединить две коллекции в одну, используйте функцию
union()
. Её также можно использовать в инфиксной форме - a union b
. Обратите внимание, что для отсортированных коллекций важен порядок операндов: в результирующей коллекции элементы первого операнда идут перед элементами второго.
Чтобы найти пересечения между двумя коллекциями (другими словами поиск элементов, присутствующих в обеих коллекциях), используйте функцию intersect()
. И наоборот, для поиска элементов, отсутствующих в другой коллекции, используйте
subtract()
. Обе функции могут быть вызваны в инфиксной форме, например, a intersect b
.
fun main() {
val numbers = setOf("one", "two", "three")
println(numbers union setOf("four", "five")) // [one, two, three, four, five]
println(setOf("four", "five") union numbers) // [four, five, one, two, three]
println(numbers intersect setOf("two", "one")) // [one, two]
println(numbers subtract setOf("three", "four")) // [one, two]
println(numbers subtract setOf("four", "three")) // [one, two]
}
Обратите внимание, что операции с Set
также применимы и к List
. Однако результатом операций всё равно будет Set
, поэтому все повторяющиеся элементы будут удалены.