Sobes.tech
Junior

W jakich przypadkach należy używać Set zamiast Array?

sobes.tech AI

Odpowiedź od AI

Zbiór powinien być używany, gdy ważne są następujące aspekty:

  • Unikalność elementów: Zbiór z natury nie pozwala na duplikaty. Jeśli potrzebujesz zbioru unikalnych wartości, tablica będzie wymagała dodatkowej logiki do ich filtrowania.
  • Wysoka wydajność operacji sprawdzania przynależności: Sprawdzenie, czy zbiór zawiera dany element, ma średnią złożoność O(1) (amortyzowaną), podczas gdy dla tablicy jest to O(n).
  • Wysoka wydajność operacji wstawiania i usuwania: Wstawianie i usuwanie elementów po wartości w zbiorze zwykle mają zbliżoną do O(1) średnią złożoność, podczas gdy w tablicy może to osiągać O(n) w przypadku wstawiania/usuwania nie na końcu.
  • Brak konieczności zachowania kolejności elementów: Zbiór nie gwarantuje żadnego konkretnego porządku elementów. Jeśli kolejność jest ważna, użyj tablicy.

Typowe scenariusze użycia zbiorów:

  • Przechowywanie zestawu unikalnych identyfikatorów.
  • Filtrowanie duplikatów z kolekcji.
  • Efektywne wykonywanie operacji na zbiorach, takich jak suma, przecięcie i różnica.
  • Szybkie sprawdzanie, czy element znajduje się w kolekcji.

Przykład uzyskania unikalnych elementów z tablicy za pomocą zbioru:

let numbers = [1, 2, 3, 2, 4, 1, 5]
let uniqueNumbers = Set(numbers) // {1, 2, 3, 4, 5} - kolejność nie jest gwarantowana