Študijné materiály

Set (Set) je množina unikátnych hodnôt. Na rozdiel od List nemá definovaný poradie a každá hodnota sa v ňom nachádza nanajvýš raz.

fun main() {
    val set1: Set<Int> = setOf(1, 2, 3, 3, 2)  // {1, 2, 3} - duplicitne odstranene
    val set2: Set<Int> = emptySet()
    val set3: MutableSet<Int> = mutableSetOf(1, 2, 3)
    val set4: MutableSet<Int> = mutableSetOf()

    set3.add(4)            // pridanie prvku
    set3 += 5              // pridanie cez operator
    set3.remove(2)         // odstranenie prvku

    println(set3)          // [1, 3, 4, 5]
    println(3 in set3)     // true - overenie existencie
    println(2 in set3)     // false
}

9.2.1 Operácie nad setmi

Sety podporujú matematické operácie - pretínanie, zlučovanie a rozdiel:

fun main() {
    val setA = setOf(1, 2, 3, 4)
    val setB = setOf(3, 4, 5, 6)

    val prienik = setA.intersect(setB)       // {3, 4}
    val zlucenie = setA.union(setB)           // {1, 2, 3, 4, 5, 6}
    val rozdiel = setA.subtract(setB)         // {1, 2}
    val rozdiel2 = setB.subtract(setA)        // {5, 6}

    println(prienik)    // [3, 4]
    println(zlucenie)   // [1, 2, 3, 4, 5, 6]
    println(rozdiel)    // [1, 2]
}

Úlohy

Úloha 1

Vytvor dva sety obsahujúce čísla 1 až 10 a 5 až 15. Vypočítaj ich prienik, zlučovanie a rozdiel.

Úloha 2

Zo zoznamu opakujúcich sa mien vytvor set a vypíš počet unikátnych mien.

Úloha 3

Vytvor meniteľný set obľúbených farieb, pridaj farbu, jednu odstráň a over prítomnosť vybranej farby.