集合有三種:數(shù)組,字典,集
數(shù)組是值的有序集合。集是唯一值的無(wú)序集合。字典是關(guān)鍵值關(guān)聯(lián)的無(wú)序集合。

1,集合可變性
創(chuàng)建后分配給變量,則是可變集合,反之則是不可變集合,如果不可變盡可能用不可變集合,這樣容易理解,并使有更好的性能
一,數(shù)組
一個(gè)陣列存儲(chǔ)在有序列表中的相同類型的值。相同的值可以在不同位置多次出現(xiàn)在數(shù)組中
需要說(shuō)明的是:與OC相比,數(shù)組可以加入int 等基本數(shù)據(jù)類型
1,創(chuàng)建數(shù)組





2.數(shù)組的增刪改查




3,數(shù)組迭代(遍歷)
swift的迭代(遍歷)與OC大體差不多,都是用forfor /forin ,但是swift還有一個(gè)用法:

二,集合set
set存儲(chǔ)集合中沒(méi)有定義排序的相同類型的不同的值。當(dāng)項(xiàng)目的順序不重要時(shí),或者當(dāng)您需要確保某個(gè)項(xiàng)目只顯示一次時(shí),可以使用集合而不是數(shù)組
特性:無(wú)序,不重
1,創(chuàng)建初始化


2.增刪改查
增刪改查大部分只需知道set的特性,那便是無(wú)序跟不重復(fù),用法與oc沒(méi)什么區(qū)別


3.遍歷


備注:Swift的Set類型沒(méi)有定義的順序。要以特定順序迭代集合的值,請(qǐng)使用該sorted()方法,該方法將集合的元素作為使用<運(yùn)算符排序的數(shù)組返回。
4.set的運(yùn)算
4.1集合之間的值運(yùn)算
使用該intersection(_:)方法創(chuàng)建一個(gè)僅具有兩個(gè)集合通用值的新集合。
使用該symmetricDifference(_:)方法創(chuàng)建一個(gè)新集合,其中的值可以是任一集,但不能同時(shí)使用。
使用該union(_:)方法創(chuàng)建一個(gè)新集合,其中所有值都在兩個(gè)集合中。
使用該subtracting(_:)方法創(chuàng)建一個(gè)新集合,其值不在指定的集合中。


4.2集合之間的關(guān)系運(yùn)算
使用“等于”運(yùn)算符(==)來(lái)確定兩個(gè)集合是否包含所有相同的值。
使用該isSubset(of:)方法確定集合的所有值是否包含在指定的集合中。
使用該isSuperset(of:)方法來(lái)確定集合是否包含指定集合中的所有值。
使用isStrictSubset(of:)或isStrictSuperset(of:)方法來(lái)確定集合是子集還是超集,但不等于指定集。
使用該isDisjoint(with:)方法來(lái)確定兩個(gè)集合是否沒(méi)有共同的值。

三.字典
字典存儲(chǔ)相同類型的密鑰和一個(gè)集合中的相同類型的值與沒(méi)有定義排序之間的關(guān)聯(lián)。每個(gè)值都與一個(gè)唯一的密鑰相關(guān)聯(lián),唯一的密鑰用作字典內(nèi)該值的標(biāo)識(shí)符。與數(shù)組中的項(xiàng)目不同,字典中的項(xiàng)目沒(méi)有指定的順序。當(dāng)您需要根據(jù)其標(biāo)識(shí)符查找值時(shí),使用字典,與使用實(shí)際字典來(lái)查找特定單詞的定義的方式大致相同。
1.創(chuàng)建.初始化



2.增刪改查


OC中不確定只能用setvalue for ,不能用字面量,swift可以

注意:該updateValue(_:forKey:)方法在執(zhí)行更新后返回舊值。這使您能夠檢查是否發(fā)生更新



3,迭代/遍歷


