Swift 4集合是用於儲存相同型別的不同值,但它們沒有像陣列那樣的有明確排序順序。
如果不需要元素排序,或者需要沒有重複值(唯一值),則可以使用集合而不是陣列(集合只允許不同的值)。
型別必須是可雜湊型別並且是可以比較的,才能儲存在一個集合中。雜湊值是物件的Int
值相等。例如,如果兩個物件相等:x == y
,則x.hashvalue == y.hashvalue
。
預設情況下,所有基本swift
值都是可雜湊型別,可以用作集合值。
使用以下初始化語法建立某個型別的空集合 -
var someSet = Set<Character>() // 字元可以由集合的資料型別替換。
可以使用其方法和屬性存取或修改集合 -
count
方法可用於顯示集合中的元素數量。
someSet.count // prints the number of elements
insert
方法可用於在set
集合中插入值。
someSet.insert("c") // adds the element to Set.
同樣,isEmpty
可用於檢查set
集合是否為空。
someSet.isEmpty // returns true or false depending on the set Elements.
remove
方法可用於刪除set
集合中的值。
someSet.remove("c") // removes a element , removeAll() can be used to remove all elements
contains
方法可用於檢查集合中是否存在值。
someSet.contains("c") // to check if set contains this value.
使用for-in
迴圈遍歷集合 -
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)
}
在swift集上執行基本的集合操作。
以下是執行集合操作的方法 -
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]