Swift: Set (Множество)

Множество — коллекция элементов гарантирующая, что все ее элементы будут с уникальным значением, порядок не важен.
Set взаимозаменяем (bridged) с NSSet из Objective-C

Пример инициализации

так же позволяет впоследствии переопределять переменную упрощенным способом

Если из контекста ясно о том, какие данные должен хранить множество, тип можно опустить

Добавить элемент — insert

Проверка на наличие — contains

Но повторное добавление не вызовет ошибки, просто ничего не произойдет

Удалить элемент — remove, если множество содержало удаляемый элемент — он и будет присвоен, если нет — будет присвоено nil

Итерация по множеству проходит идентично с массивом, посредством

Хоть Set и неупорядочен, его можно отсортировать.
В swift 1.2 сортировка Set производилась посредством глобальной функции сортировки sorted, возвращающей Array с отсортированными элементами

В swift 2.0 эту функцию сделали методом в расширении для SequenceType

Ну и совсем специфичные команды для множеств.
Объединение — union(_:)
Создает множество включающее в себя оба переданных в метод.

Вычитание subtract(_:)
Из создает множество содержащее те элементы первого множества, которых нет во втором

Пересечение intersect(_:)
Создает множество которые присутствуют одновременно в обоих множествах переданных в метод

XOR, исключающее или exclusiveOr(_:)
Создает множество из уникальных элементов обоих множеств. Если a = [1, 3, 5] и b = [1, 2, 5], то result = [3, 2]

Так же есть методы для сравнения множеств, приведу лишь их названия, всегда можно обратиться к документации

isSubsetOf(_:), SupersetOf(_:), isStrictSubsetOf(_:), isStrictSupersetOf(_:), isDisjointWith(_:)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *