Sobes.tech
Junior

Millal peaks kasutama Set-i asemel Array-d?

sobes.tech AI

Vastus AI-lt

Set tuleks kasutada järgmistel juhtudel:

  • Vajadus salvestada ainult unikaalseid elemente. Set tagab automaatselt, et iga element esineb kogumis mitte rohkem kui üks kord.
  • Kõrge jõudlus elementide olemasolu kontrollimisel. Operatsioon contains(_:) Set-is omab keskmiselt amortiseeritud keerukust O(1), samas kui Array-s on see O(n).
  • Elementide järjekord ei ole oluline. Erinevalt Array-st ei garanteeri Set kindlat järjekorda oma elementide loendamisel.
  • Sagedased lisamise, eemaldamise ja olemasolu kontrollimise operatsioonid. Need operatsioonid Set-is on tavaliselt tõhusamad kui Array-s suurte kogumite puhul, kui järjekord ei ole oluline ja on vaja unikaalsust.

Koodinäide, mis näitab erinevust otsingus:

// Array
let array = [1, 2, 3, 4, 5]
let element = 5

// Otsing Array-s - lineaarne otsing (O(n))
let isPresentInArray = array.contains(element)

// Set
let set: Set = [1, 2, 3, 4, 5]
// Otsing Set-is - hashimine (keskmiselt O(1))
let isPresentInSet = set.contains(element)