Zbiór (Set)

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Co to jest zbiór (Set)?

Zbiór (Set) to struktura danych przeznaczona do przechowywania unikalnych elementów. Oznacza to, że ten sam element nie może wystąpić w zbiorze więcej niż jeden raz.

Jeżeli spróbujemy dodać do zbioru wartość, która już w nim istnieje, struktura zwykle ją zignoruje albo nie zmieni swojej zawartości.

Najważniejsze cechy zbioru

  • przechowuje tylko unikalne wartości,
  • pozwala szybko sprawdzić, czy element już istnieje,
  • zwykle nie gwarantuje kolejności elementów,
  • dobrze nadaje się do usuwania duplikatów.

Typowe operacje

  • add — dodanie elementu,
  • remove — usunięcie elementu,
  • contains — sprawdzenie, czy element znajduje się w zbiorze,
  • iteracja po elementach.

Przykład w C

HashSet<int> liczby = new HashSet<int>();

liczby.Add(5);
liczby.Add(10);
liczby.Add(5); // duplikat nie zostanie dodany

Console.WriteLine(liczby.Count); // 2

Kiedy używać zbioru?

Zbioru używa się wtedy, gdy ważne jest, aby dane się nie powtarzały. Przykłady:

  • lista unikalnych loginów użytkowników,
  • zbiór odwiedzonych wierzchołków w grafie,
  • usuwanie duplikatów z listy,
  • sprawdzanie, czy element został już wcześniej przetworzony.

Różnica względem tablicy i listy

Tablica lub lista mogą przechowywać duplikaty, np. [1, 2, 2, 3]. Zbiór przechowa tylko unikalne wartości, np. {1, 2, 3}. Dlatego w pytaniu o strukturę najlepszą do przechowywania unikalnych elementów poprawną odpowiedzią jest zbiór (Set).