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.
Setautomaticky zajišťuje, že každý prvek je v kolekci nejvýše jednou. - Vysoká výkonnost při kontrole, zda prvek existuje. Operace
contains(_:)vSetmá průměrnou amortizovanou složitost O(1), zatímco vArrayje O(n). - Pořadí prvků není důležité. Na rozdíl od
Array,Setnezaruč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
Setobvykle efektivnější než vArraypro 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)