Когда использовать множество (Set) в Swift?

«Когда использовать множество (Set) в Swift?» — вопрос из категории Алгоритмы и структуры данных, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Множество (Set) в Swift используется для хранения неупорядоченной коллекции уникальных элементов одного типа, соответствующего протоколу Hashable.

Основные сценарии применения:

  • Гарантия уникальности элементов. Автоматическое удаление дубликатов при вставке.
    let uniqueIDs: Set = [101, 102, 103, 101] // Станет [101, 102, 103]
  • Быстрая проверка принадлежности. Метод contains(_:) работает в среднем за O(1).
    if uniqueIDs.contains(102) { // Быстрая проверка
        print("ID найден")
    }
  • Выполнение теоретико-множественных операций: объединение (union), пересечение (intersection), вычитание (subtracting), симметрическая разность (symmetricDifference).
    let admins: Set = ["Alice", "Bob"]
    let activeUsers: Set = ["Bob", "Charlie"]
    let activeAdmins = admins.intersection(activeUsers) // ["Bob"]

Когда НЕ использовать Set:

  • Когда важен порядок элементов (используйте Array).
  • Когда нужны дубликаты значений.
  • Когда требуется частый доступ к элементам по целочисленному индексу.

Совет: Для хранения упорядоченных уникальных элементов рассмотрите использование NSOrderedSet (Foundation) или комбинации Set для проверки уникальности и Array для сохранения порядка.