Когда использовать словарь (Dictionary) в Swift?

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

Ответ

Словарь (Dictionary) в Swift используется для хранения неупорядоченных коллекций пар ключ-значение, где каждый ключ уникален. Основные сценарии применения:

  • Быстрый поиск по ключу. Доступ к значению по ключу в среднем выполняется за O(1).
  • Моделирование ассоциативных данных. Например, хранение настроек пользователя, параметров запроса или свойств объекта.
  • Группировка данных. Объединение элементов по общему признаку (ключу).
  • Подсчет частоты элементов. Ключ — элемент, значение — количество его вхождений.

Пример:

var capitals = ["Россия": "Москва", "Франция": "Париж"]
// Добавление
capitals["Япония"] = "Токио"
// Быстрый доступ
if let russianCapital = capitals["Россия"] {
    print(russianCapital) // Москва
}

Ключевые ограничения и best practices:

  • Тип ключа должен соответствовать протоколу Hashable.
  • Порядок элементов не гарантирован (до Swift 4). Для сохранения порядка добавления используйте OrderedDictionary из сторонних библиотек или iOS 15+.
  • Не подходит, если важен порядок элементов или нужны дублирующиеся ключи.
  • Используйте compactMapValues, mapValues для безопасных преобразований.