Junior
Kiedy należy używać Set zamiast Array?
sobes.tech AI
Odpowiedź od AI
Set powinien być używany w następujących przypadkach:
- Potrzeba przechowywania tylko unikalnych elementów.
Setautomatycznie zapewnia, że każdy element pojawia się w kolekcji nie więcej niż raz. - Wysoka wydajność przy sprawdzaniu obecności elementu. Operacja
contains(_:)wSetma średnią złożoność amortyzowaną O(1), podczas gdy wArrayjest to O(n). - Kolejność elementów nie ma znaczenia. W przeciwieństwie do
Array,Setnie gwarantuje określonego porządku wyliczania swoich elementów. - Częste operacje dodawania, usuwania i sprawdzania obecności. Te operacje w
Setsą zazwyczaj bardziej wydajne niż wArraydla dużych kolekcji, jeśli kolejność nie ma znaczenia i wymagana jest unikalność.
Przykład kodu pokazujący różnicę w wyszukiwaniu:
// Array
let array = [1, 2, 3, 4, 5]
let element = 5
// Wyszukiwanie w Array - wyszukiwanie liniowe (O(n))
let isPresentInArray = array.contains(element)
// Set
let set: Set = [1, 2, 3, 4, 5]
// Wyszukiwanie w Set - haszowanie (średnio O(1))
let isPresentInSet = set.contains(element)