Sobes.tech
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. Set automatycznie zapewnia, że każdy element pojawia się w kolekcji nie więcej niż raz.
  • Wysoka wydajność przy sprawdzaniu obecności elementu. Operacja contains(_:) w Set ma średnią złożoność amortyzowaną O(1), podczas gdy w Array jest to O(n).
  • Kolejność elementów nie ma znaczenia. W przeciwieństwie do Array, Set nie gwarantuje określonego porządku wyliczania swoich elementów.
  • Częste operacje dodawania, usuwania i sprawdzania obecności. Te operacje w Set są zazwyczaj bardziej wydajne niż w Array dla 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)