Swift 集合型別

2022-05-21 15:27:57 字數 3861 閱讀 1241

swift語言提供陣列和字典的集合型別

swift 語言裡的陣列和字典中儲存的資料值型別必須明確 ,即陣列中只能存放同型別的資料。

1: 陣列 

陣列的建立

var shoppinglist: string = ["

tset

", "

hell

", 「hell」]

var arrayint:int = [1, 3]

var arrayintex  = [55, 32]//使用推理型別

//空陣列的建立

var someints = int()

println("\(someints.isempty)")

//建立指定型別(double)和個數(3)並設定初始值(0.0)

var threedoubles = double(count: 3, repeatedvalue:0.0)

陣列的訪問用下標訪問。下標從0開始,注意不要越界了。

var arrayintex  = [1, 3

]arrayintex[

1] = 99

println(

"\(arrayintex[1])

")

陣列的可修改性是依賴var或者let控制的

陣列元素個數使用 count ,isempty檢測是否位空陣列

var arrayintex  = [1, 3

]let count =arrayintex.count

let bflag =shoppinglist.isempty

println(

"\(count)\n\(bflag)

")

var arrayintex  = [1, 3]8

)arrayintex += 9

arrayintex += [55, 66

]println(

"\(arrayintex[2])\n\(arrayintex[3])\n\(arrayintex[4])\n\(arrayintex[5])\n

")

陣列元素指定索引號插入 insert().insert在指定索引號的時候,最大為原有元素個數+現插入的元素個數-1,這樣類似於在末尾新增。insert插入後,原有的元素後移動。

var arrayintex  = [1, 3

]arrayintex.insert(

5, atindex:2

)println(

"\(arrayintex)

")

陣列指定索引號刪除 removeatindex

var arrayintex  = [1, 3, 9

]arrayintex.removeatindex(1)

println(

"\(arrayintex)

")

陣列遍歷用 for in 

var arrayintex  = [1, 3, 9

]for item in

arrayintex

如果要使用索引號和值,那用enumerate 

var arraytest = ["

ax", "

bx", "

sx", "

sxx"

]for (index, value) in

enumerate(arraytest)

陣列拼接 如果兩個陣列型別一樣,可以用+做拼接。當然結果的順序和你拼接的時候的順序時一致的

var arrayintfirst = [2, 5

]var arrayintsecond = [6, 77

]var arrayres = arrayintsecond +arrayintfirst

println(

"\(arrayres)

")

2:字典

swift 的字典使用時需要具體規定可以儲存鍵和值型別 ,字典儲存時沒有順序的,它依賴於乙個可以雜湊的keyvalue值來查詢。估計它是把keyvalue雜湊後作為key建立的紅黑二茬樹來查詢的。

字典使用 dictionary定義 .keytype要求可以雜湊的,valuetype在乙個字典裡型別必須一致

字典建立

var airports: dictionary= [1: "

yamide

",2: "

soga

"]//

顯示型別說明

var dicdefault = [2:"

xx", 33:"

oo"]//

使用了型別推理,這裡比較特殊的是 2和3 不能用 2.0 和 3 ,它不支援型別的轉換推理的

var namesofintegers = dictionary()//空陣列的建立

var dicempty = [:]

字典的可否修改時依靠var和let控制的

字典元素個數使用count 屬性可以得到

var dicdefault = [2:"

xx", 33:"oo"

]println(

"\(dicdefault.count)

")

字典元素的更新。可以用下標關鍵字新增

var dicdefault = [2:"

xx", 33:"oo"

]dicdefault[

22] = "tt"

println(

"\(dicdefault)

")

如果下標新增的key是字典裡已經有的,那麼它會update資料.

updatevalue(forkey:)方法可以設定或者更新特定鍵對應的值 .如果keyvalue沒有就新增,字典中已經有則更新

var dicdefault = [1:"

xx", 2:"oo"

]dicdefault[

3] = "tt"

dicdefault.updatevalue("sx

", forkey:4)//

adddicdefault.updatevalue("

sbcd

", forkey:2)//

update

刪除  removevalueforkey 

var dicdefault = [1:"

xx", 2:"oo"

]dicdefault[

3] = "tt"

dicdefault.updatevalue("sx

", forkey:4

)dicdefault.removevalueforkey(2)

println(

"\(dicdefault)

")

字典遍歷 可以使用for in 遍歷字典鍵值對。以元組形式返回

var dicdefault = [1:"

xx", 2:"oo"

]for(key, value)in

dicdefault

字典可以用 values 返回所有值 keys返回所有關鍵字

var dicdefault = [1:"

xx", 2:"oo"

]var keys =dicdefault.keys

var values =dicdefault.values

for key in

keys

for value in

values

swift集合型別 陣列和字典

swift 語言提供了陣列和字典兩種集合型別來儲存集合資料。陣列用來按順序儲存相同型別的資料。字典則是以無序的方式來儲存鍵值對 key,value 陣列和字典都是強型別的,也就意味著,陣列和字典在宣告時必須指明型別。本篇部落格我們來分別討論swift中的陣列和字典 陣列就是以乙個從頭到尾的順序儲存相...

Swift心得筆記之集合型別

陣列 重複值的初始化 除了普通的初始化方法,我們可以通過 init count int,repeatedvalue t 來初始化乙個陣列並填充上重複的值 複製 如下 0.0,0.0,0.0 var threedoubles double count 3,repeatedvalue 0.0 帶索引值的...

Swift 陣列 集合

宣告 初始化 vararray003 string vararray0031 string varnewarray double count 4,repeatedvalue 1.1 建立特定大小和內容的陣列 或者array count 4,repeatedvalue 1.1 varintarr1 i...