Sobes.tech
Junior

Kada naudoti Set vietoj Array?

sobes.tech AI

Atsakymas iš AI

Set turėtų būti naudojamas šiais atvejais:

  • Reikia saugoti tik unikalius elementus. Set automatiškai užtikrina, kad kiekvienas elementas kolekcijoje būtų ne daugiau kaip vieną kartą.
  • Aukšta našumas tikrinant, ar elementas yra. Operacija contains(_:) Set turi vidutinę amortizuotą sudėtingumą O(1), o Array - O(n).
  • Elementų tvarka nėra svarbi. Skirtingai nuo Array, Set nesuteikia garantijos dėl savo elementų išvardijimo tvarkos.
  • Dažnos pridėjimo, pašalinimo ir tikrinimo operacijos. Šios operacijos Set dažniausiai yra efektyvesnės nei Array didelėse kolekcijose, jei tvarka nėra svarbi ir reikalinga unikalumas.

Kodo pavyzdys, rodantis skirtumą paieškoje:

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

// Paieška Array - linijinė paieška (O(n))
let isPresentInArray = array.contains(element)

// Set
let set: Set = [1, 2, 3, 4, 5]
// Paieška Set - hashavimas (vidutiniškai O(1))
let isPresentInSet = set.contains(element)