Swift 4 sets are used to store distinct values of same types but they don’t have definite ordering as arrays have.
You can use sets instead of arrays if ordering of elements is not an issue, or if you want to ensure that there are no duplicate values. (sets allow only distinct values.)
A type must be hashable to be stored in a set. A hash value is a Int value that is equal for equal objects. For example, if x == y, then x.hashvalue == y.hashvalue.
All the basic swift values are of hashable type by default and may be used as set values.
You can create an empty set of a certain type using the following initializer syntax −
var someSet = Set<Character>() //Character can be replaced by data type of set.
You can access or modify a set using its methods and properties −
"count" method can be used to show the number of elements in the set.
someSet.count // prints the number of elements
"insert" method can be used to insert values in set.
someSet.insert("c") // adds the element to Set.
Similarly, isEmpty can be used to check if set is empty.
someSet.isEmpty // returns true or false depending on the set Elements.
"remove" method can be used to remove value in set.
someSet.remove("c") // removes a element , removeAll() can be used to remove all elements
"contains" method can be used to check existence of value in a set.
someSet.contains("c") // to check if set contains this value.
You can iterate over a set using for-in loop −
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) }
You can perform basic set operations on swift Sets.
Following are the methods for performing set operations −
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]