Вопрос проверяет понимание основных коллекций в Swift и их различий по структуре, скорости доступа и уникальности элементов.
Array — упорядоченный список, допускает дубли; доступ по индексу за O(1).Set — неупорядоченное множество уникальных элементов, поиск за O(1) в среднем.Dictionary — неупорядоченное отображение «ключ→значение», доступ по ключу за O(1) в среднем.
Структура: упорядоченный список элементов одинакового типа.
Дублирование: допускает одинаковые значения.
Доступ: по индексу за константное время.
Пример:
var a: [Int] = [1, 2, 3]
a.append(4)
let x = a[0] // 1Структура: хеш-таблица уникальных элементов.
Упорядоченность: отсутствует, порядок неопределён.
Поддержка операций: пересечение, объединение, вычитание.
Пример:
var s: Set<String> = ["a", "b", "c"]
s.insert("d")
let contains = s.contains("a") // trueСтруктура: отображение ключей в значения через хеш-таблицу.
Ключи: должны быть Hashable, уникальны.
Доступ: по ключу за среднее O(1).
Пример:
var d: [String: Int] = ["one": 1, "two": 2]
d["three"] = 3
let v = d["one"] // Optional(1)Array для упорядоченных списков с дубликатами.
Set для множества без дубликатов и быстрых проверок наличия.
Dictionary для хранения пар «ключ→значение» и быстрого поиска по ключу.