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.
Setautomaticky zabezpečuje, že každý prvok sa v kolekcii nachádza najviac raz. - Vysoký výkon pri kontrole, či prvok existuje. Operácia
contains(_:)vSetmá priemernú amortizovanú zložitosť O(1), zatiaľ čo vArrayje to O(n). - Poradie prvkov nie je dôležité. Na rozdiel od
Array,Setnezaručuje určitý poriadok pri enumerácii svojich prvkov. - Časté operácie pridávania, odstraňovania a kontroly existencie. Tieto operácie v
Setsú zvyčajne efektívnejšie ako vArraypre 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)