A set stores a collection of unique values of the same type.
Sets are unordered and can store anything types.
You can create an empty set by using the Set type's initializer.
var setOfStrings = Set<String>()
You can create a set with an array literal.
Swift will figure out what type to use based on the type of values in the array:
var fruitSet : Set = ["apple","orange","orange","banana"] print(fruitSet.count)
Objects in a set are unique.
If you add the same object twice to a set, it's only included in the set once.
To be stored in a set, a type must be hashable.
All the build-in types are hashable, and you can make your own types hashable by making them conform to the Hashable protocol.
To modify a set, check if it's empty and add and removing items:
var fruitSet : Set = ["apple","orange","orange","banana"] print(fruitSet.count)//from w ww. j a v a 2 s .com if fruitSet.isEmpty { print("My set is empty!") } // Add a new item to the set fruitSet.insert("pear") print(fruitSet) // Remove an item from the set fruitSet.remove("apple") print(fruitSet)// fruitSet now contains {"banana", "pear", "orange"}
To get an element from a set you can use its index.
You need to first get the index of the element:
var fruitSet : Set = ["apple","orange","orange","banana"] fruitSet.insert("pear") print(fruitSet)/*from ww w .jav a 2 s .c om*/ // getting the index of "pear" let index = fruitSet.index(of: "pear") // index is now an optional Set.Index type print(fruitSet[index!]) // "pear"
You can iterate over a set:
var fruitSet : Set = ["apple","orange","orange","banana"] fruitSet.insert("pear") for fruit in fruitSet { let fruitPlural = fruit + "s" print("You know what's tasty? \(fruitPlural.uppercased()).") }