四.集合類型/Collection Types

集合有三種:數(shù)組,字典,集

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

集合結(jié)構(gòu)

1,集合可變性

創(chuàng)建后分配給變量,則是可變集合,反之則是不可變集合,如果不可變盡可能用不可變集合,這樣容易理解,并使有更好的性能

一,數(shù)組

一個(gè)陣列存儲(chǔ)在有序列表中的相同類型的值。相同的值可以在不同位置多次出現(xiàn)在數(shù)組中

需要說(shuō)明的是:與OC相比,數(shù)組可以加入int 等基本數(shù)據(jù)類型

1,創(chuàng)建數(shù)組

創(chuàng)建一個(gè)空數(shù)組
拼接一個(gè)元素
創(chuàng)建一個(gè)重復(fù)元素的數(shù)組
數(shù)組的拼接也可以用"+"
初始化賦值


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

數(shù)組增刪改查
多個(gè)元素賦值,插入元素
刪除元素
刪除最后一個(gè)元素

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)建初始化

創(chuàng)建一個(gè)空set
初始化賦值

2.增刪改查

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

刪除
是否包含

3.遍歷

遍歷
排序,變?yōu)閿?shù)組

備注: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è)新集合,其值不在指定的集合中。

關(guān)系圖
計(jì)算結(jié)果


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)有共同的值。

計(jì)算結(jié)果


三.字典

字典存儲(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)建.初始化

創(chuàng)建
賦值-置空
初始化賦值

2.增刪改查

新增
修改

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

更新值的完整方法

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

更新
刪除的方法之一
字典刪除方法,注意:返回值

3,迭代/遍歷

迭代/遍歷字典,比OC還是要簡(jiǎn)便很多
遍歷key與value
獲得keys或values的數(shù)組
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • [The Swift Programming Language 中文版]本頁(yè)包含內(nèi)容: Swift 語(yǔ)言提供Arr...
    風(fēng)林山火閱讀 523評(píng)論 0 1
  • 集合類型 Swift有三種集合類型:數(shù)組、集合和字典。數(shù)組是有序集,集合是值唯一的無(wú)序集,字典是鍵值對(duì)的無(wú)序集。 ...
    暗夜夜夜行路閱讀 426評(píng)論 0 0
  • 由蘋果官網(wǎng)翻譯得來(lái)fork自https://github.com/letsswift/The-Swift-Prog...
    佛祖拿屠刀閱讀 491評(píng)論 0 1
  • 就這樣 很好 你忙活著打 果汁 我躺著沙發(fā)上寫詩(shī) 就讓我貪婪的多享受一會(huì) 隨便你把香蕉黃瓜西紅柿扔進(jìn)果汁機(jī) 榨出的...
    娥兒閱讀 292評(píng)論 0 1
  • 齊元愿望:學(xué)習(xí)金剛種子法則,財(cái)富自由,家庭關(guān)系和諧美滿,家人身體健康。 ...
    齊元滿愿閱讀 290評(píng)論 0 1

友情鏈接更多精彩內(nèi)容