Функция subtract
Функция subtract
возвращает новую коллекцию,
содержащую элементы из исходной коллекции, которые
отсутствуют в указанной коллекции для вычитания.
Функция применяется к коллекциям типа Iterable
,
Array
, List
, Set
и другим.
Для Map
функция subtract
недоступна.
Синтаксис
infix fun <T> Iterable<T>.subtract(other: Iterable<T>): Set<T>
fun <T> Iterable<T>.subtract(other: Iterable<T>): Set<T>
fun <T> Array<out T>.subtract(other: Iterable<T>): Set<T>
Пример
Вычтем из списка чисел другой список:
val numbers1 = listOf(1, 2, 3, 4, 5)
val numbers2 = listOf(3, 4, 5, 6, 7)
val res = numbers1.subtract(numbers2)
println(res)
Результат выполнения кода:
Set<Int> [1, 2]
Пример
Использование инфиксной нотации:
val set1 = setOf('a', 'b', 'c', 'd')
val set2 = setOf('c', 'd', 'e', 'f')
val res = set1 subtract set2
println(res)
Результат выполнения кода:
Set<Char> ['a', 'b']
Пример
Вычитание из массива:
val array = arrayOf(10, 20, 30, 40, 50)
val toRemove = listOf(20, 40, 60)
val res = array.subtract(toRemove)
println(res)
Результат выполнения кода:
Set<Int> [10, 30, 50]
Пример
Если все элементы исходной коллекции содержатся в коллекции для вычитания, результат будет пустым множеством:
val list1 = listOf(1, 2, 3)
val list2 = listOf(1, 2, 3, 4, 5)
val res = list1.subtract(list2)
println(res)
Результат выполнения кода:
Set<Int> []
Примечания
Функция subtract
всегда возвращает результат
типа Set
, даже если исходная коллекция была
другого типа. Порядок элементов в результате не гарантируется.
Для сохранения порядка используйте filter
с !in
.