Sobes.tech
Junior

Kedy by ste mali použiť Set namiesto Array?

sobes.tech AI

Odpoveď od AI

Set by mal byť použitý v nasledovných prípadoch:

  • Potrebujete uložiť iba jedinečné prvky. Set automaticky zabezpečuje, že každý prvok sa v kolekcii nachádza najviac raz.
  • Vysoký výkon pri kontrole, či prvok existuje. Operácia contains(_:) v Set má priemernú amortizovanú zložitosť O(1), zatiaľ čo v Array je to O(n).
  • Poradie prvkov nie je dôležité. Na rozdiel od Array, Set nezaručuje určitý poriadok pri enumerácii svojich prvkov.
  • Časté operácie pridávania, odstraňovania a kontroly existencie. Tieto operácie v Set sú zvyčajne efektívnejšie ako v Array pre veľké kolekcie, ak poradie nie je dôležité a je požadovaná jedinečnosť.

Príklad kódu ukazujúci rozdiel vo vyhľadávaní:

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

// Vyhľadávanie v Array - lineárne vyhľadávanie (O(n))
let isPresentInArray = array.contains(element)

// Set
let set: Set = [1, 2, 3, 4, 5]
// Vyhľadávanie v Set - hashovanie (priemer O(1))
let isPresentInSet = set.contains(element)