Ответ
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")