天天看點

Swift集合

程式=資料結構+算法

資料結構:

    數組(array),棧(stack),隊列(queue),連結清單(linked list),樹(tree),圖(graph),堆(heap)和哈希表(hash)

        不同的結構對應于不同的算法,有的考慮節省空間,有的考慮速度,提高運作速度往往是以犧牲空間為代價,與之相反。

1、數組集合     

            數組是一串有序相同類型的元素構成的集合,數組更關心是否有序,而對于重複則不關心;

        (1)數組聲明與初始化

                數組聲明:var studentlist1:array<string> 

                                   var studentlist2:[string]

                初始化:var studentlist1:array<string> =["張三",“李四”]

                                var studentlist2:[string] = [ "張三",“李四”]

                                let studentlist3:[string] = ["張三","李四"]

                                var studentlist4:[string] = [string]()

                nsarray: 類,引用類型

                array:結構體,值類型

        (2)數組的修改

                可變數組中的元素進行追加,删除,插入和替換等修改操作;

                1、追加元素可以使用append方法或者+操作符;

                2、插入元素可以使用insert方法實作;

                3、删除元素可以使用removeatindex方法實作;

                4、替換元素可以直接指派;

                var studentlist1:[string] = ["張三","李四"]

                println(studentlist1)

                 studentlist1.append("王五")

                studentlist1 +=["趙六","王八"]

                studentlist1.insert("張飛",atindext:studentlist.count)

                let removestudent = studentlist.removeatindex(0)

        (3)數組周遊

                可以使用for in循環周遊數組

                    for (index,value) in enumarate(studentlist){

                            println("item\(index+1)\(vaule)")

}

2、字典集合

           字典表示一種非常複雜,允許按照某個鍵來通路元素,字典是由2部分集合構成的,一個是鍵(key)的集合,一個是值(value)的集合,鍵集合不能有重複的,值集合可以有重複的。

          (1)字典聲明與初始化

                聲明:

                    var studentdicationary:dictionary<int,string>

                    var studentdicationary:[int:string]

                初始化:

                        var studentdicationary:dictionary<int,string> = [102:"張三",103:“李四”]

                        var studentdictionary = [102:"張三",103:"李四"]

                        let studentdictionary = [102:"張三",103:"李四"]

                        ar studentdictionary = dictionary<int,string>()調用構造方法

          (2)字典的修改

                    可變字典中的元素進行追加,删除和替換等操作

                1、追加元素

                        如果給不存在的鍵指派,結果是在字典中追加一個新的鍵值對

                2、删除元素可以使用字典的removeatindex方法實作,

                 2種方法:

                一種是通過給鍵值指派nil;

                另一種是通過字典的removevalueforkey(key)方法删除,方法的傳回值就是要删除的值

                3、替換元素

                    兩種方法:

                    一種是直接給存在的鍵指派,

                    另一種是通過updatevalue(forkey:)方法替換,方法的傳回值就是要替換的值

                            studentlist.updatevalue("李四",forkey:102)

            (3)字典的周遊

                    字典的周遊也是字典的重要操作,周遊值的集合,也可以周遊鍵的集合,也可以同時周遊,通過for in循環周遊

                獲得所有鍵集合:keys屬性

                獲得所有值jiehe:values屬性

                var studentlist = [102:"張三",103:"李四"]

                for studentid in studentlist.keys{}

                for studentname in studentlist.values{}

                for (studentid,studentname) in studentlist{}

3、集合的複制

            集合在指派或參數傳遞過程中會發生複制,swift中的值類型和引用類型,值類型會發生複制,而引用類型不會發生。

            (1)字典複制

                    在為字典指派或參數傳遞的時候,字典總是發生複制行為,但是它的鍵和值是否發生複制要看資料的類型,

            (2)數組複制

                    數組與字典複制類似,在為數組指派或者參數傳遞的時候,數組總會發生複制

繼續閱讀