Swift開發(fā)標(biāo)準(zhǔn)教程-集合類型_第1頁
Swift開發(fā)標(biāo)準(zhǔn)教程-集合類型_第2頁
Swift開發(fā)標(biāo)準(zhǔn)教程-集合類型_第3頁
Swift開發(fā)標(biāo)準(zhǔn)教程-集合類型_第4頁
Swift開發(fā)標(biāo)準(zhǔn)教程-集合類型_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

集合類型4.1數(shù)組4.2數(shù)組的操作4.3集合4.4集合的操作4.5集合的基本運(yùn)算4.6集合間關(guān)系4.7字典4.8字典的操作4.9綜合案例4.10上機(jī)實(shí)踐4.1數(shù)組4.1.1數(shù)組字面量4.1.2數(shù)組的聲明4.1.3數(shù)組的初始化4.1.1數(shù)組字面量數(shù)組字面量(也稱數(shù)組字面值)使用值、“,”和“[]”組成的,其語法形式如下:[value1,value2,value3,……]4.1.2數(shù)組的聲明數(shù)組的寫法形式如下:Array<Element>或者是[Element]數(shù)組也是一種變量或者常量,只是它所指代的值比較特殊而已。所以,在使用數(shù)組之前,必須對其進(jìn)行聲明。其語法形式如下:let常量數(shù)組名:[Element]=內(nèi)容var變量數(shù)組名:[Element]=內(nèi)容

//內(nèi)容可寫可不寫4.1.3數(shù)組的初始化數(shù)組初始化就是為聲明的數(shù)組進(jìn)行賦值。本小節(jié)將講解5種初始化數(shù)組的方式,分別為:使用字面量初始化數(shù)組、初始化一個空數(shù)組、初始化一個帶有默認(rèn)值的數(shù)組、使用一個數(shù)組初始化數(shù)組以及通過兩個數(shù)組相加創(chuàng)建一個數(shù)組。1.使用字面量初始化數(shù)組使用字面量初始化數(shù)組是數(shù)組進(jìn)行初始化時最為簡單的方式。02

letarray:[Int]=[1,2,3]

//使用[1,2,3]為數(shù)組進(jìn)行初始化2.初始化一個空數(shù)組空數(shù)組是數(shù)組中最為簡單的方式,它的初始化方式有兩種:一種是直接賦空數(shù)組字面值;另一種是使用初始化語法。(1)直接賦空數(shù)組字面值02

letarray:[Int]=[]

//使用空的數(shù)組字面量為數(shù)組初始化(2)使用初始化語法使用初始化的語法可以初始化一個空的數(shù)組,例如以下的代碼:leta=[Int]()3.初始化一個帶有默認(rèn)值的數(shù)組初始化的語法不僅可以初始化空數(shù)組,而且還可以初始化非空數(shù)組,此時可以指定數(shù)組的大小,以及數(shù)組的默認(rèn)值。03

varthreeDoubles=[Double](count:3,repeatedValue:6.0)4.使用一個數(shù)組初始化數(shù)組我們可以通過一個已知的數(shù)組去初始化一個新的數(shù)組。02

varthreeDoubles=

[1,2,3]03

varanotherThreeDoubles=threeDoubles

//初始化5.通過兩個數(shù)組相加初始化一個數(shù)組我們可以使用加法運(yùn)算符(+)來組合兩種已存在的相同類型的數(shù)組放入一個數(shù)組。新數(shù)組的數(shù)據(jù)類型會被從兩個數(shù)組的數(shù)據(jù)類型中推斷出來。02

varthreeDoubles=[Double](count:3,repeatedValue:6.0)03

varanotherThreeDoubles=Array(count:3,repeatedValue:2.5)04

varsixDoubles=threeDoubles+anotherThreeDoubles

//初始化數(shù)組4.2數(shù)組的操作4.2.1獲取數(shù)組中元素個數(shù)4.2.2判斷數(shù)組是否為空4.2.3在末尾添加一個元素4.2.4插入值4.2.5讀取值4.2.6修改值4.2.7刪除值4.2.1獲取數(shù)組中元素個數(shù)數(shù)組所包含元素的個數(shù)也被稱為數(shù)組的長度。數(shù)組提供了一個只讀屬性count用于讀取數(shù)組的長度。其語法形式如下:數(shù)組名.count4.2.2判斷數(shù)組是否為空判斷數(shù)組是否為空的方法有兩種,一種是使用count屬性,另一種是使用isEmpty屬性。以下就是對這兩種方法的講解。1.使用count屬性count屬性可以獲取數(shù)組的長度,開發(fā)者可以根據(jù)獲取長度的值來判斷數(shù)組是否為空。2.使用isEmpty屬性判斷數(shù)組是否為空,除了可以通過數(shù)組的長度進(jìn)行判斷外,還可以使用isEmpty屬性進(jìn)行判斷,其語法形式如下:數(shù)組名.isEmpty4.2.3在末尾添加一個元素在Swift中,可變數(shù)組的元素個數(shù)是可以改變的。開發(fā)者給一個聲明好的數(shù)組在末尾添加元素。實(shí)現(xiàn)的方法有兩種:一種方式是使用+=操作符,另一種方式是使用append()方法。以下是對這兩種方法的具體介紹。1.使用+=+=操作符可以將一個元素添加到數(shù)組的末尾,其語法形式如下:數(shù)組名+=[元素]+=操作符不僅可以在數(shù)組的末尾添加一個元素,還可以將一個數(shù)組添加到另一個數(shù)組尾部。2.使用append()開發(fā)者除了使用+=操作符外,還可以使用append()方法添加元素。其語法形式如下:數(shù)組名.append(元素)4.2.4插入值在數(shù)組等集合類型中會為每一個元素所在位置進(jìn)行編號,這個編號被稱為索引,其中,第一個元素的索引值為0而不是1。開發(fā)者可以使用insert()方法在特定索引值位置處插入一個值(元素)。其語法形式如下:數(shù)組名.insert(_newElement:Element,atIndexi:Int)4.2.5讀取值開發(fā)者可以直接用下標(biāo)語法來獲取數(shù)組中的數(shù)據(jù)項(xiàng)(即讀取數(shù)組中的元素),下標(biāo)語法就是把我們需要的數(shù)據(jù)項(xiàng)的索引值直接放在數(shù)組名稱的方括號中即可,其語法形式如下:數(shù)組名[索引值]4.2.6修改值數(shù)組中的元素(值)是可以進(jìn)行修改。本小節(jié)將講解兩種修改數(shù)組中元素的方法:一種是修改單個值;另一種是修改一系列的值。1.修改單個值修改單個值同樣需要借助下標(biāo)語法,其語法形式如下:數(shù)組名[索引值]=修改的值2.修改一系列的值使用下標(biāo)語法不僅可以對單個元素進(jìn)行修改,還可以一次性修改多個元素。02

vararray:[String]=["A","B","C","D","E","F"]04

array[2...5]=["1","2","3","4"]

//修改值4.2.7刪除值在數(shù)組中有值的插入就會對應(yīng)的存在值的刪除,本小節(jié)將講解3種在數(shù)組中刪除值的方法,分別為:刪除尾部元素、刪除指定位置元素和刪除所有元素。1.刪除尾元素removeLast()方法可以刪除數(shù)組中最后一個值(元素),其語法形式如下:數(shù)組名.removeLast()2.刪除指定位置元素removeAtIndex()方法可以通過索引值將數(shù)組中任意位置的元素進(jìn)行刪除,其語法形式如下:數(shù)組名.removeAtIndex(index:Int)3.刪除所有元素removeAll()方法可以將數(shù)組的所有元素都刪除,其語法形式如下:數(shù)組名.removeAll()4.3集合4.3.1集合的聲明4.3.2集合的初始化4.3.1集合的聲明集合的寫法形式如下:Set<Element>集合和數(shù)組樣,在使用之前,必須要對其進(jìn)行聲明。其語法形式如下:let常量集合名:Set<Element>=內(nèi)容var變量集合名:Set<Element>=內(nèi)容4.3.2集合的初始化以下將講解兩種初始化集合的方法:第一種是使用數(shù)組字面量初始化集合;第二種是初始化一個空集合1.用數(shù)組字面量初始化集合使用數(shù)組字面量初始化集合是一般比較直接的方法。02

varletters:Set<Character>=["A","B","C"]2.初始化一個空集合空集合就是集合中沒有任何的元素。初始化空集合有兩種方式:第一種是直接賦空數(shù)組字面值;第二種是使用初始化方法。(1)直接賦空數(shù)組字面值在聲明集合后,可以給集合賦一個空的數(shù)組字面量。02

varletters:Set<Character>=[](2)使用初始化語法使用初始化的語法可以初始化一個空的集合,例如以下的代碼:varletters:Set<Character>=Set<Character>()4.4集合的操作4.4.1獲取集合中元素個數(shù)4.4.2判斷集合是否為空4.4.3判斷集合中是否包含某一值4.4.4插入值4.4.5刪除值4.4.6確定集合的順序4.4.1獲取集合中元素個數(shù)獲取集合中元素的個數(shù)可以使用count,其語法形式如下:集合名.count4.4.2判斷集合是否為空和判斷數(shù)組數(shù)組為空一樣,判斷集合是否為空也有兩種方式:一種是使用count屬性,另一種是使用isEmpty屬性。以下就是對這兩種方法的講解。1.使用count屬性count屬性可以獲取數(shù)組的長度,開發(fā)者可以根據(jù)獲取長度的值來判斷數(shù)組是否為空。2.使用isEmpty屬性判斷集合是否為空,除了可以通過count屬性外,還可以使用isEmpty屬性進(jìn)行判斷,其語法形式如下:集合名.isEmpty4.4.3判斷集合中是否包含某一值使用contains()方法可以判斷集合中是否包含某一特定的值,其語法形式如下:集合名.contains(_member:Element)4.4.4插入值開發(fā)者可以為創(chuàng)建的集合插入值,這時最常使用到的方法為insert()方法,其語法形式如下:集合名.insert(_member:Element)4.4.5刪除值有集合元素的插入,對應(yīng)的就會有集合元素的刪除。以下將講解常用的3種刪除集合中元素的方法。1.刪除第一個值刪除集合中第一個元素,需要使用到removeFirst()方法,其語法形式如下:集合名.removeFirst()2.刪除指定的值刪除指定的值需要使用到remove()方法,其語法形式如下:集合名.remove(_member:Element)3.刪除所有的值如果開發(fā)者不再使用某一集合中所有的值,可以將此集合中的值全部刪除,此時需要使用removeAll()方法,其語法形式如下:集合名.removeAll()4.4.6確定集合的順序在以上這些程序的輸出結(jié)果中可以看到,Swift的Set類型沒有確定的順序,為了讓集合按照特定順序輸出,可以使用sort()方法,它將根據(jù)提供的序列返回一個有序集合。其語法形式如下:集合名.sort()4.5集合的基本運(yùn)算4.5.1a∩b4.5.2a∪b4.5.3a-b4.5.4a-b∪b-a4.5.1a∩ba∩b稱為集合a與b的交集。即由屬于集合a且屬于集合b的元素所組成的集合。在Swift編程語言中要實(shí)現(xiàn)集合a∩b的功能,需要使用到intersect()方法,該方法根據(jù)兩個集合中都包含的值創(chuàng)建的一個新的集合。其語言形式如下:集合名.

intersect(_sequence:S)4.5.2a∪ba∪b稱為集合a與b的并集,即由所有屬于集合A或?qū)儆诩螧的元素所組成的集合。在Swift編程語言中要實(shí)現(xiàn)集合a∪b的功能,需要使用到union()方法,該方法根據(jù)兩個集合的值創(chuàng)建一個新的集合。其語言形式如下:集合名.

union(_sequence:S)4.5.3a-ba-b就是集合a和b的相對差集,只包含在集合a中,但不在集合b中的所有元素。在Swift編程語言中要實(shí)現(xiàn)集合a-b的功能,需要使用到subtract()方法,該方法根據(jù)不在該集合中的值創(chuàng)建一個新的集合。其語言形式如下:集合名.subtract

(_sequence:S)4.5.4a-b∪b-aa-b∪b-a可以用符號a△b表示,被稱為集合a和b的對稱差,它是指是只在集合A及B中的其中一個出現(xiàn),沒有在其交集中出現(xiàn)的元素。在Swift編程語言中要實(shí)現(xiàn)集合a-b∪b-a的功能,需要使用到exclusiveOr()方法,該方法根據(jù)在一個集合中但不在兩個集合的交集中的值創(chuàng)建一個新的集合。其語法形式如下:集合名.exclusiveOr(_sequence:S)4.6集合間關(guān)系4.6.1相等判斷4.6.2子集的判斷4.6.3父集合的判斷4.6.4其他判斷4.6.1相等判斷判斷兩個集合中是中的值是等,可以使用“==”進(jìn)行判斷,其語法形式如下:集合1==集合24.6.2子集的判斷isStrictSubsetOf()方法可以對子集進(jìn)行判斷,其語法形式如下:集合名.isStrictSubsetOf(_sequence:S)4.6.3父集合的判斷isStrictSupersetOf()可以對父集合進(jìn)行判斷,其語法形式如下:集合名.isStrictSupersetOf(_sequence:S)4.6.4其他判斷除了以上提供的對關(guān)系的判斷外,還有3種。方法功能isDisjointWith()判斷兩個集合是否不含有相同的值isSubsetOf()判斷一個集合中的值是否也被包含在另外一個集合中isSupersetOf()判斷一個集合中包含另一個集合中所有的值4.7字典4.7.1字典字面量4.7.2字典的聲明4.7.3字典的初始化4.7.1字典字面量字典字面量就是直接書寫的包含一個或者多個鍵值對的字典數(shù)值。一個鍵值對是一個鍵和值的組合。鍵和值使用冒號分隔,而多個鍵值對使用逗號分隔。其鍵值對語法形式如下:key:value其中,參數(shù)key表示鍵,value表示值。字典字面量就是有鍵值對和一對“[]”組合。字典字面量中可以只有一個鍵值對。這時的字典字面量語法形式如下:[key:value]當(dāng)字典字面量中有多個鍵值對,其語法形式如下:[key1:value1,key2:value2,key3:value3……]4.7.2字典的聲明字典的形式有兩種,第一種是完整寫法,其語法形式如下:Dictionary<KeyType,ValueType>第二種是[KeyType:ValueType]聲明不可變字典的語法形式如下:let常量字典名:Dictionary<KeyType,ValueType>=內(nèi)容let常量字典名:[KeyType:ValueType]=內(nèi)容聲明可變字典的語法形式如下:var常量字典名:Dictionary<KeyType,ValueType>=內(nèi)容var常量字典名:[KeyType:ValueType]=內(nèi)容4.7.3字典的初始化以下將講解兩種初始化集合的方法:第一種是使用數(shù)組字面量初始化集合;第二種是初始化一個空集合1.用字典字面量初始化字典使用字典字面量初始化集合是一般比較直接的方法。02

varairports:Dictionary<Int,String>=[1:"TorontoPearson",2:"Dublin"]04

varname:[Int:String]=[1:"Tom",2:"LiLy"]2.初始化一個空字典初始化空字典可以使用初始化語法。02

varnamesOfIntegers=[Int:String]()4.8字典的操作4.8.1獲取字典中的元素個數(shù)4.8.2讀取鍵的值4.8.3添加元素4.8.4修改鍵關(guān)聯(lián)的值4.8.5刪除值4.8.1獲取字典中的元素個數(shù)獲取字典中的元素個數(shù)即鍵值對個數(shù)需要使用到count屬性,其語法形式如下:字典名.count4.8.2讀取鍵的值和很多語言一種,字典中的鍵所對應(yīng)的值可以單獨(dú)讀取。在Swift語言中,使用下標(biāo)語法進(jìn)行讀取。字典中通過下標(biāo)語法鍵讀取值的語法形式如下:字典名[鍵]4.8.3添加元素下標(biāo)語法除了可以對鍵的值進(jìn)行讀取外,還可以向字典中添加元素。04

name[4]="Abel"

//添加元素4.8.4修改鍵關(guān)聯(lián)的值在字典中,每個鍵都對應(yīng)一個值。開發(fā)者也可以修改鍵值的對應(yīng)關(guān)系。修改的方式有兩種:一種是使用下標(biāo)語法;另一種是使用updateValue()方法。1.下標(biāo)語法下標(biāo)語法可以對字典中的鍵關(guān)聯(lián)的值進(jìn)行修改。04

nam

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論