Sobes.tech
Junior

Kdy byste měli použít Set místo Array?

sobes.tech AI

Odpověď od AI

Set by měl být použit v následujících případech:

  • Potřeba uložit pouze unikátní prvky. Set automaticky zajišťuje, že každý prvek je v kolekci nejvýše jednou.
  • Vysoká výkonnost při kontrole, zda prvek existuje. Operace contains(_:) v Set má průměrnou amortizovanou složitost O(1), zatímco v Array je O(n).
  • Pořadí prvků není důležité. Na rozdíl od Array, Set nezaručuje určité pořadí při enumeraci svých prvků.
  • Časté operace přidávání, odstraňování a kontroly existence. Tyto operace jsou v Set obvykle efektivnější než v Array pro velké kolekce, pokud pořadí není důležité a je požadována unikátnost.

Příklad kódu ukazující rozdíl ve vyhledávání:

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

// Vyhledávání v Array - lineární hledání (O(n))
let isPresentInArray = array.contains(element)

// Set
let set: Set = [1, 2, 3, 4, 5]
// Vyhledávání v Set - hashování (průměrně O(1))
let isPresentInSet = set.contains(element)