Introduction
In this article, we will learn how to implement the concept of Sets in Swift programming language. Like other languages, Set is a new concept and it's totally related to math. Likewise in math, we see sets and operations like union, intersection, etc. The snapshots in my article are of Xcode Editor. I will run all the lines of code and show its snapshots to you.
What are Sets?
Set is an unordered collection of unique values of the same type. It is extremely useful when you ensure that the repeating items in a set only appear one time and the order of items is not important.
Creating Sets
The declaration of Set is similar to an array; the only key difference between the array and the set is, when you declare a Set you use a keyword “Set” which means the list of items is treated like a Set.
let setOne: Set<Int>
You can also initialize a set similar to an array, like
let set=Set<Int> ()
Set Literals
Sets don’t have their own literals, so we use array literals to create a set with initial values.
let array= [11,22,33,44]
This is simple array. So, we use array literals to create a set, like this:
let arrayset : Set<Int>=[11,22,33,44]
Accessing Element
Elements in sets don’t have any indices or keys. We have some built-in methods in array like isEmpty(). These types of methods are used in a set, too. I will apply some methods on set.
Code
- let SetA:Set<Int>=[11,22,33,44]
-
- print(SetA)
- print(SetA.first)
- print(SetA.first!)
- print(SetA.contains(11))
- print(SetA.contains(77))
Adding and removing element
Adding and removing elements in a set is same as an array. We use insert() method to add the element in set and remove() method to delete an item from set. We can see it through an example and apply add and remove method on it.
Code - var SetA:Set<Int>=[11,22,33,44]
-
- print(SetA.insert(88))
- print(SetA)
-
- SetA.remove(88)
- print(SetA)
Set Operation
One of the most powerful features of set is that it supports mathematical operations, like union, intersection and etc, when you combine two sets.
Union: Creates a new set with all the values from both the sets
Intersect: Creates a new set only with the values that are common in both sets.
Subtract: Creates a new set by removing values which appear in the second set. Here, it depends on which set you want to subtract, like A-B or B-A.
Exclusive-Or: Creates a new set with the values that appear in one of the sets but not both.
Code - var SetA:Set<Int>=[11,22,33,44]
- var SetB:Set<Int>=[1,2,3,4]
-
-
- print(SetA.union(SetB))
-
-
- print(SetA.intersect(SetB))
-
-
- print(SetB.subtract(SetA))
- print(SetA.subtract(SetB))
-
-
- print(SetA.exclusiveOr(SetB))
Nesting Sets
Like loops and if-else condition, you can also make nesting sets, like this
Code - var SetA:Set<Int>=[11,22,33,44]
- var SetB:Set<Int>=[1,2,3,4]
-
-
- var combineSets : Set = [SetA,SetB]
Point of Interest - Sets are the unordered collection of unique values.
- Sets are most useful when you need to find out if the element is included in the collection or not
- You can initialize sets from array and vice versa
Conclusion
This is all about sets. I covered almost each and every thing. If you face any confusion about this topic, you can comment in the article and ask me.