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).