Какие основные типы коллекций есть в Swift?

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

Ответ

Swift предоставляет три основных универсальных типа коллекций в стандартной библиотеке. Все они являются value type (значимыми типами) и используют дженерики.

Тип Описание Ключевые особенности Пример
Array<Element> Упорядоченная коллекция элементов с целочисленным индексом. Сохраняет порядок добавления. Дубликаты разрешены. Быстрый доступ по индексу O(1). var scores: [Int] = [95, 92, 98]
Set<Element> Неупорядоченная коллекция уникальных элементов. Элементы должны соответствовать Hashable. Очень быстрый поиск (O(1) в среднем). Нет порядка. var tags: Set<String> = ["Swift", "iOS"]
Dictionary<Key, Value> Неупорядоченная коллекция пар ключ-значение. Ключи уникальны. Ключи должны быть Hashable. Доступ к значению по ключу (O(1) в среднем). var capitals: [String: String] = ["FR": "Paris"]

Общие возможности (благодаря протоколам Collection и Sequence):

  • Итерация: for item in collection { ... }
  • Функциональные преобразования: map, filter, reduce, compactMap, forEach.
  • Проверки: isEmpty, contains, first, count.

Примеры операций:

// Array: добавление, доступ по индексу
var numbers = [1, 2, 3]
numbers.append(4)
let first = numbers[0] // 1

// Set: проверка принадлежности, объединение
let primes: Set = [2, 3, 5, 7]
print(primes.contains(5)) // true
let evens: Set = [2, 4, 6]
let intersection = primes.intersection(evens) // [2]

// Dictionary: доступ и изменение по ключу
var user = ["name": "Alice", "age": 30]
user["city"] = "London" // Добавление
let name = user["name"] // Optional("Alice")