集合類型是一種無順序的集合類型,但其中的元素不可以重複,與陣列一樣,集合在宣告必須指定其類型,或是給出初值型別推斷。
var set1: Set = [1,2,3,4]
var set2 = Set(arrayLiteral: 1,2,3,4)
由於集合沒有順序,所以透過下標的方式來獲得值不太具有意義,但是還是可以透過下標來獲取其中的元素。
獲取第一個元素( 順序不定 )
set1[set1.startIndex]
獲取後一個元素
set1[set1.index(after: set1.startIndex)]
獲取後幾個元素
set1[set1.index(set1.startIndex, offsetBy: 3)]
獲取元素個數
set1.count
判斷是否為空
if set1.isEmpty {
print("Empty")
}
判斷是否包含某個元素
if set1.contains(1) {
print("contain")
}
獲取最大值
set1.max()
獲取最小值
set1.min()
插入元素
set1.insert(5)
刪除元素
set1.remove(1)
刪除第一個元素
set1.removeFirst()
刪除一個範圍的元素
set1.remove(at: set1.firstIndex(of: 3)!)
刪除全部元素
set1.removeAll()
集合與陣列,除了有順序和無順序的區別外,集合還有一個特點,可以進行運算,例如交集,聯集,差集,對稱差集。下面是Swift官方所提供的圖。
var set3:Set = [1,2,3,4]
var set4:Set = [1,2,5,6]
var setInter = set3.intersection(set4)
print(setInter)
// [1, 2]
var setEx = set3.symmetricDifference(set4)
print(setEx)
// [3, 5, 4, 6]
var setUni = set3.union(set4)
print(setUni)
// [1, 3, 2, 4, 5, 6]
var setSub = set3.subtracting(set4)
print(setSub)
// [3, 4]
集合中還提供了一些方法來判斷集合間的關係
var set5:Set = [1,2]
var set6:Set = [2,3]
var set7:Set = [1,2,3]
var set8:Set = [1,2,3]
set5.isSubset(of: set7)
// return ture
set7.isSuperset(of: set5)
// return ture
set5.isStrictSubset(of: set7)
// return true
set7.isStrictSuperset(of: set8)
// return false
遍歷元素
for item in set7 {
print(item)
}
遍歷集合的列舉
for item in set7.enumerated() {
print(item)
}
遍歷集合的下標
for index in set7.indices {
print(set7[index])
}
從大到小排序在遍歷集合
for item in set7.sorted(by: >) {
print(item)
}
接下來,是字典的介紹