A HashSet
имеет внутреннюю структуру (хэш), где элементы можно быстро найти и идентифицировать. Недостатком является то, что итерация по HashSet
(или получение элемента по индексу) довольно медленная.
Так почему кто-то хочет знать, существует ли запись в наборе?
Одна из ситуаций, когда HashSet
полезна, - получение различных значений из списка, в котором могут существовать дубликаты. После добавления элемента в HashSet
можно быстро определить, существует ли элемент (оператор Contains
).
Другими преимуществами HashSet
являются операции Set: IntersectWith
, IsSubsetOf
, IsSupersetOf
, Overlaps
, SymmetricExceptWith
, UnionWith
.
Если вы знакомы с языком ограничения объектов , тогда вы определите эти операции над множествами. Вы также увидите, что это на один шаг ближе к реализации исполняемого UML.