Операторы plus и minus

В Kotlin для коллекций определены операторы plus (+) и minus (-). В качестве первого операнда они принимают коллекцию; вторым операндом может быть элемент или другая коллекция. Возвращаемым результатом является новая неизменяемая коллекция:

  • При использовании оператора plus результат будет содержать элементы исходной коллекции и элементы второго операнда.
  • При использовании оператора minus результат будет содержать элементы исходной коллекции за исключением элементов второго операнда. Если второй операнд — это элемент, то оператор minus удалит его первое вхождение из исходной коллекции; если же это коллекция, то будут удалены все вхождения её элементов.
fun main() {
    val numbers = listOf("one", "two", "three", "four")

    val plusList = numbers + "five"
    val minusList = numbers - listOf("three", "four")
    println(plusList) // [one, two, three, four, five]
    println(minusList) // [one, two]
}

Подробнее об использовании операторов plus и minus с ассоциативным списком можно ознакомиться в разделе Map: специфичные операции.

Также для коллекций определены расширенные операторы присваивания такие как, plusAssign (+=) и minusAssign (-=). Однако с неизменяемыми коллекциями они фактически используют операторы plus или minus, пытаясь присвоить результат той же переменной. Поэтому неизменяемая коллекция должна быть объявлена при помощи ключевого слова var. Для изменяемых коллекций этого не требуется. Подробнее читайте в разделе Операции записи.