Set類型語法:
Swift中的Set類型被寫為Set,這里的T表示Set中允許存儲的類型。
創建和構造一個空的Set
1.你可以通過構造器語法創建一個特定類型的空集合:
var letters = Set()
2.一個空的數組字面量創建一個空的Set:
var letters = Set()
leters.insert("a")
letters = []
3.用數組字面量創建集合
var favoriteGenres: Set =?["Rock","Classical",Hip hop""]
這里將favoriteGenres顯示聲明為Set,如果不這么做,favoriteGenres會被推斷為Array類型.
訪問和修改一個Set
1.為了找出一個Set中元素的數量,可以使用其只讀屬性count
2.使用布爾屬性isEmpty,作為一個縮寫形勢去檢查count屬性是否為0
3.你可以通過調用Set的insert(_:)方法來添加一個新元素
4.用Set的remove(_:)方法去刪除一個元素,也可以通過removeAll()方法刪除所有元素
5.使用contains(_:)方法去檢查Set中是否包含一個特定的值
6.Set和Array不同的是,Set是無序的,可以通過調用sort()方法來進行排序。
基本集合操作
1.使用intersect(_:)方法根據兩個集合中都包含的值創建的一個新的集合。
2.使用symmetricDifference(_:)方法很據只在一個集合中但不在兩個集合中的值創建一個新的集合。
3.使用union(_:)方法根據兩個集合的值創建一個新的集合。
4.使用subtract(_:)方法根據不在該集合中的值創建一個新的集合。
集合成員關系和相等
下面的插圖描述了三個集合a,b和c,以及通過懸浮區域表述集合間共享的元素。Set a是Set b的父集合,因為 a 包含了 b中所有元素,相反的,Set b 是 a 的子集合,因為屬于b的元素也被a 包含。Set b 和Set c彼此不關聯,因為他們之間沒有共同的元素。
1.使用“是否等”運算符(==)來判斷兩個集合是否包含全部相同的值。
2.使用isSubsetOf(_:)方法來判斷一個集合中的值是否也被包含在另外一個集合中。
3.使用isSupersetOf(_:)方法來判斷一個集合中包含的值是否含有另一個集合中所有的值。
4.使用isStrictSubsetOf(:)或者isStrictSupersetOf(:)方法來判斷一個集合是否是另外一個集合的子集合或者父集合并且和特定集合不相等。
5.使用isDisjointWith(_:)方法來判斷兩個集合是否不含有相同的值