Set to struktura danych powszechnie stosowana w programowaniu komputerowym. Jest to nieuporządkowany zbiór danych, co oznacza, że nie są one przechowywane w określonej kolejności. Różni się od list, które są uporządkowanymi zbiorami danych, i map, które są zbiorami danych składającymi się z par klucz-wartość.
Zestawy są najczęściej używane w programowaniu funkcjonalnym, gdzie mogą być używane do reprezentowania skończonych lub potencjalnie nieskończonych zestawów wartości. Mogą być również używane w programowaniu imperatywnym i obiektowym.
W zależności od języka, w którym są zaimplementowane, zbiory mogą oferować różne metody modyfikacji, takie jak dodawanie nowych elementów i usuwanie istniejących elementów. W niektórych językach możliwe jest konstruowanie zestawów z list i odwrotnie.
Zbiory są szeroko stosowane do takich zadań, jak reprezentowanie zbiorów kluczy (np. dla tablicy skrótów lub zbioru flag), znajdowanie różnicy lub przecięcia zbiorów oraz sprawdzanie, czy wartość znajduje się w zbiorze.
Struktury danych zbiorów mogą być również wykorzystywane do zapewnienia optymalizacji podczas obliczania niektórych funkcji matematycznych, takich jak suma, przecięcie i różnica dwóch zbiorów.
Zbiory mogą być również implementowane jako wyspecjalizowane struktury danych, takie jak drzewo czerwono-czarne lub drzewo zrównoważone, w celu zapewnienia szybszego czasu wykonywania operacji, takich jak testowanie lub wstawianie elementów.