Ce face Iterable.union
a union b conține toate elementele din a și din b, fiecare o singură dată. a intersect b conține doar elementele care sunt în ambele. a subtract b conține elementele din a care nu sunt în b.
Toate trei se pot scrie infix (fără punct și paranteze) și întorc un Set, deci fără duplicate. Ordinea urmează prima colecție (apoi elementele noi din a doua, la union).
Parametri
| Parametru | Descriere |
|---|---|
alta |
A doua colecție. |
Ce returnează
Un Set<T> nou.
Exemple
Exemplul 1: Cursuri alese de doi studenți
Reuniunea arată toate cursurile, intersecția pe cele comune, iar diferența ce are Ana în plus față de Ion.
fun main() {
val ana = listOf("Matematică", "Fizică", "Engleză")
val ion = listOf("Engleză", "Istorie", "Matematică")
println("Toate: ${ana union ion}")
println("Comune: ${ana intersect ion}")
println("Doar Ana: ${ana subtract ion}")
}
Rezultat
Toate: [Matematică, Fizică, Engleză, Istorie]
Comune: [Matematică, Engleză]
Doar Ana: [Fizică]
Exemplul 2: Duplicatele dispar
Chiar dacă listele au valori repetate, rezultatul este o mulțime.
fun main() {
val luni = listOf(1, 2, 2, 3)
val marti = listOf(3, 3, 4)
println(luni.union(marti))
println(luni.intersect(marti))
}
Rezultat
[1, 2, 3, 4]
[3]
Greșeli frecvente
- Folosești
unioncând vrei să păstrezi duplicatele: rezultatul este un set. Pentru o lipire simplă folosește+. - Confunzi
subtractcuminus:subtractîntoarce unSet(fără duplicate),minuso listă.
Comenzi înrudite
Iterable.toSet: Transformă colecția într-o mulțime (fără duplicate): toSet, toMutableSet sau toSortedSet (sortată).Iterable.plus: Operatorii + și – pe colecții: creează o listă nouă cu elemente adăugate sau scoase, fără să schimbe originalul.setOf: Creează o mulțime: o colecție fără duplicate, în care verifici rapid dacă un element există.Iterable.distinct: Elimină duplicatele și întoarce o listă cu fiecare element o singură dată, în ordinea primei apariții.