數(shù)組(Arrays)是有序數(shù)據(jù)的集。
集合(Sets)是無序無重復(fù)數(shù)據(jù)的集。
字典(Dictionaries)是無序的鍵值對的集。
-
集合的可變性
注:在我們不需要改變集合大小的時候創(chuàng)建不可變集合是很好的習(xí)慣,這樣swift編譯器可以優(yōu)化我們創(chuàng)建的集合。
-
數(shù)組(Arrays)
形式:Array<Element> 或者 [Element] 推薦后者 空數(shù)組:[ ] 創(chuàng)建一個帶有默認(rèn)值的數(shù)組: var threeDoubles = [Double](repeatElement(0.0, count: 3))
-
集合(Sets)
當(dāng)集合元素順序不重要時或者希望確保每個元素只出現(xiàn)一次時可以使用集合而不是數(shù)組。 形式:Set<Element> 集合沒有等價的簡化形式 Set類型沒有確定的順序,為了按照特定順序來遍歷一個Set中的值可以使用 sorted()方法,它將根據(jù)提供的序列返回一個有序的集合。 標(biāo)注:3.0改動 —— 返回交集的補集 a.symmetricDifference(b)
//集合操作
var a : Set = ["1", "2", "3", "4", "5”]
var b : Set = ["3", "4", "5", "6", "7"]
a.intersection(b).sorted() 兩個集合的交集
a.symmetricDifference(b).sorted() 兩個集合的補集
a.union(b).sorted() 兩個集合的全集
a.subtract(b) a中特有的元素的集合
a.isSubset(of: b) 判斷是否是某個集合的子集:a是b的子集?
a.isSuperset(of: b) 判斷是否是某個集合的超集?
a.isStrictSubset(of: b) 判斷是否是某個集合的真子集(子集合)?
a.isStrictSuperset(of: b) 判斷是否是某個集合的真超集(父集合)?
a.isDisjoint(with: b) 判斷兩個集合是否不含有相同的值?(是否沒有交集)
-
字典
形式:Dictionary<Key, Value> 或者 [Key: Value] 推薦后者 字典的updateValue(_:forKey)方法可以設(shè)置或者更新特定鍵對應(yīng)的值,這個方法返回更新值之前的原值。這樣使得我們可以檢查更新是否成功。而且這個方法會返回對應(yīng)值的類型的可選值。
例:
var airports = ["YYZ": "Toronto Pearson", "DUB": "Dubin"] if let oldValue = airports.updateValue("Dublin Airport", forKey: "DUB") { print("the old value for DUB was \(oldValue).") }
241AAB0B-3AD7-4E0E-82AA-B39AB4F97F53.png
字典的下標(biāo)語法返回的對應(yīng)值的類型也是可選值。
removeValue(_:forKey)在字典中移除鍵值對,特性同上。