Set. This Swift collection allows no duplicate elements. It uses hash codes to test for equality between elements. A set has fast logic tests.
With methods, we perform simple actions like insertion. We can test to see if an element exists. With set operations, we can see if 2 sets intersect.
First program. Here we create an empty set. We then insert() 4 strings into it. The last two strings are the same—only one is retained in the set.
Here Count returns 3, the number of elements retained in the set. The duplicate element is not counted.
Finally We use the print() func to display the elements present. This is a useful debugging technique.
// Create a set and add Strings to it.
var animals = Set<String>()
animals.insert("cat")
animals.insert("bird")
animals.insert("dog")
animals.insert("dog")
// Only unique elements are stored in the set.
print(animals.count)
// The second dog element is not present.
print(animals)3
["bird", "cat", "dog"]
Remove, contains. We use remove() to erase an element from a set. And with contains() we see whether an element (the argument) exists. It returns true or false.
var knownIds = Set<Int>()
knownIds.insert(100)
knownIds.insert(200)
knownIds.insert(300)
// Remove this Int from the set.
knownIds.remove(200)
// This is contained within the set.
if knownIds.contains(100) {
print(true)
}
// Not contained.
if !knownIds.contains(200) {
print(false)
}true
false
For-in loop. With the for-in loop we can access all the elements in a set. This provides not indexes, but often we do not need indexes.
var languages = Set<String>()
languages.insert("Swift")
languages.insert("Python")
languages.insert("Ruby")
// Loop over all elements in the set.// ... Ordering is not maintained.
for language in languages {
print(language)
}Python
Ruby
Swift
Intersection, subtract. This program first initializes sets with initializer syntax. This is an easier way to create a new set from known element.
Note We call intersection to find the elements that are present in both sets (that intersect). A new set is returned.
Note 2 Subtract() removes elements from one set that are present in another. It modifies the first set in-place.
var colors1: Set<String> = ["red", "orange", "pink"]
let colors2: Set<String> = ["blue", "red", "pink"]
// Intersection returns a set of the two shared Strings.// ... Red and pink are shared.
let intersection = colors1.intersection(colors2)
print(intersection)
// Subtract removes shared values.// ... Red and pink are removed in the set.// ... The colors1 set is modified in-place.
colors1.subtract(colors2)
print(colors1)["pink", "red"]
["orange"]
Summary. Sets have many uses in programs. They help with simple requirements, like ensuring uniqueness. More advanced things, like set operations, are less often needed.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on Aug 23, 2023 (edit).