Ce face Iterable.plus
lista + x întoarce o listă nouă cu x adăugat la final; lista + altaLista le lipește. Originalul rămâne neschimbat, deci merge și pe liste doar pentru citire.
lista - x scoate prima apariție a lui x. lista - altaLista scoate toate aparițiile elementelor care sunt în a doua colecție.
Pe un Set rezultatul este tot un Set. Pe o MutableList declarată cu val, += adaugă pe loc (este addAll).
Parametri
| Parametru | Descriere |
|---|---|
element / elemente |
Un singur element sau o colecție de elemente de adăugat ori de scos. |
Ce returnează
O List<T> nouă (sau Set<T> când colecția din stânga este un set).
Exemple
Exemplul 1: Adăugare și lipire
Fiecare + creează o listă nouă; echipa nu se schimbă.
fun main() {
val echipa = listOf("Ana", "Ion")
val cuMaria = echipa + "Maria"
val toti = cuMaria + listOf("Radu", "Elena")
println(echipa)
println(cuMaria)
println(toti)
}
Rezultat
[Ana, Ion]
[Ana, Ion, Maria]
[Ana, Ion, Maria, Radu, Elena]
Exemplul 2: minus: prima apariție sau toate
- 3 scoate doar primul 3. - listOf(3) scoate toate valorile 3.
fun main() {
val numere = listOf(1, 3, 5, 3, 7, 3)
println(numere - 3)
println(numere - listOf(3))
println(numere - setOf(1, 7))
}
Rezultat
[1, 5, 3, 7, 3]
[1, 5, 7]
[3, 5, 3, 3]
Exemplul 3: Pe set și cu +=
Pe un set, + nu creează duplicate. Pe o variabilă var de tip List, += înlocuiește lista cu una nouă.
fun main() {
val culori = setOf("roșu", "galben")
println(culori + "albastru" + "roșu")
var istoric = listOf("pagina 1")
istoric += "pagina 2"
println(istoric)
}
Rezultat
[roșu, galben, albastru]
[pagina 1, pagina 2]
Greșeli frecvente
- Folosești
+într-o buclă pentru mii de elemente: fiecare pas copiază toată lista. Folosește oMutableListșiadd. - Te aștepți ca
lista - xsă scoată toate aparițiile luix: scoate doar prima. Scrielista - listOf(x)saufilter { it != x }.
Comenzi înrudite
Iterable.union: Operații pe mulțimi: union (reuniunea), intersect (elementele comune) și subtract (diferența); rezultatul e un Set.MutableList.add: Adaugă un element la finalul listei sau la o poziție dată; addAll adaugă mai multe elemente deodată.Map.plus: Operatorii + și – pe map-uri: creează un map nou cu intrări adăugate sau cu chei scoase, fără să schimbe originalul.listOf: Creează o listă din elementele date: listOf pentru citire, mutableListOf și arrayListOf pentru o listă pe care o modifici.