Swift - Наборы

Swift 4 sets используются для хранения различных значений одного и того же типа, но у них нет определенного порядка, как в массивах.

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

Тип должен быть хешируемым, чтобы храниться в наборе. Хеш-значение - это значение типа Int, равное для одинаковых объектов. Например, если x == y, тоx.hashvalue == y.hashvalue.

Все базовые значения swift по умолчанию имеют хешируемый тип и могут использоваться как установленные значения.

Создание наборов

Вы можете создать пустой набор определенного типа, используя следующий синтаксис инициализатора -

var someSet = Set<Character>()     //Character can be replaced by data type of set.

Доступ и изменение наборов

Вы можете получить доступ к набору или изменить его, используя его методы и свойства -

Метод "count" можно использовать для отображения количества элементов в наборе.

someSet.count        // prints the number of elements

Метод "вставки" может использоваться для вставки значений в набор.

someSet.insert("c")   // adds the element to Set.

Точно так же isEmpty можно использовать для проверки, пусто ли set.

someSet.isEmpty       // returns true or false depending on the set Elements.

Метод "remove" может использоваться для удаления значения в наборе.

someSet.remove("c")     // removes a element , removeAll() can be used to remove all elements

Метод "contains" может использоваться для проверки наличия значения в наборе.

someSet.contains("c")     // to check if set contains this value.

Итерация по набору

Вы можете перебирать набор, используя цикл for-in -

for items in someSet {
   print(someSet)
}

//Swift sets are not in an ordered way, to iterate over a set in ordered way use

for items in someSet.sorted() {
   print(someSet)
}

Выполнение операций над наборами

Вы можете выполнять основные операции над наборами на быстрых наборах.

Ниже приведены методы для выполнения установленных операций -

  • Intersection
  • Union
  • subtracting
let evens: Set = [10,12,14,16,18]
let odds: Set = [5,7,9,11,13]
let primes = [2,3,5,7]
odds.union(evens).sorted()
// [5,7,9,10,11,12,13,14,16,18]
odds.intersection(evens).sorted()
//[]
odds.subtracting(primes).sorted()
//[9, 11, 13]