> Что такое Set, его особенности, зачем нужен и какие есть реализации (iOS, Swift)

Уровень: junior · Роль: mobile · Категория: Технические вопросы

Компании: Тинькофф

Стек: iOS, Swift

> Пример ответа

Set - это коллекция, которая хранит уникальные элементы без определённого порядка. В Swift Set реализован как хеш-таблица, поэтому его основная особенность - гарантия уникальности значений: попытка добавить дубликат игнорируется.

Зачем нужен: для быстрой проверки принадлежности элемента (O(1) в среднем), удаления дубликатов из массива, выполнения операций над множествами (объединение, пересечение, разность). Это эффективнее, чем массив, если порядок не важен, а важна скорость поиска.

Реализации в iOS/Swift:

  • Set<Element> - основная структура из стандартной библиотеки, где Element должен соответствовать протоколу Hashable.

  • NSMutableSet / NSSet - классы из Foundation, используемые для совместимости с Objective-C или при работе с нехешируемыми объектами (например, через NSCopying).

  • OrderedSet - отсутствует в стандартной библиотеке, но доступен в Foundation как NSOrderedSet (сохраняет порядок добавления, но менее производителен для поиска).

Пример использования:

SWIFT
var fruits: Set<String> = ["apple", "banana", "orange"]
fruits.insert("apple") // не добавится, так как уже есть
fruits.contains("kiwi") // false

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью