Swift語言提供數組和字典的集合類型數組
Swift 語言裏的數組和字典中存儲的數據值類型必須明確 ,即數組中只能存放同類型的數據。app
1: 數組 ide
數組的建立spa
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開始,注意不要越界了。code
var arrayIntEx = [1, 3] arrayIntEx[1] = 99 println("\(arrayIntEx[1])")
數組的可修改性是依賴var或者let控制的blog
數組元素個數使用 count ,isEmpty檢測是否位空數組索引
var arrayIntEx = [1, 3] let count = arrayIntEx.count let bFlag = shoppingList.isEmpty println("\(count)\n\(bFlag)")
數組元素追加 append 。必須是var類型數組,並且追加的元素類型要和數組類型一致。同時也能夠用 += 操做three
var arrayIntEx = [1, 3] arrayIntEx.append(8) arrayIntEx += 9 arrayIntEx += [55, 66] println("\(arrayIntEx[2])\n\(arrayIntEx[3])\n\(arrayIntEx[4])\n\(arrayIntEx[5])\n")
數組元素指定索引號插入 insert().insert在指定索引號的時候,最大爲原有元素個數+現插入的元素個數-1,這樣相似於在末尾添加。insert插入後,原有的元素後移動。rem
var arrayIntEx = [1, 3] arrayIntEx.insert(5, atIndex:2) println("\(arrayIntEx)")
數組指定索引號刪除 removeAtIndexit
var arrayIntEx = [1, 3, 9] arrayIntEx.removeAtIndex(1) println("\(arrayIntEx)")
數組遍歷用 for in
var arrayIntEx = [1, 3, 9] for item in arrayIntEx { println("\(item)") }
若是要使用索引號和值,那用enumerate
var arrayTest = ["ax", "bx", "sx", "sxx"] for (index, value) in enumerate(arrayTest) { println("Item: \(index + 1): \(value)") }
數組拼接 若是兩個數組類型同樣,能夠用+作拼接。固然結果的順序和你拼接的時候的順序時一致的
var arrayIntFirst = [2, 5] var arrayIntSecond = [6, 77] var arrayRes = arrayIntSecond + arrayIntFirst println("\(arrayRes)")
2:字典
Swift 的字典使用時須要具體規定能夠存儲鍵和值類型 ,字典存儲時沒有順序的,它依賴於一個能夠哈希的keyValue值來查找。估計它是把keyValue哈希後做爲key創建的紅黑二茬樹來查找的。
字典使用 Dictionary<KeyType, ValueType>定義 .KeyType要求能夠哈希的,ValueType在一個字典裏類型必須一致
字典建立
var airports: Dictionary<Int, String> = [1: "yamide",2: "soga"]//顯示類型說明 var dicDefault = [2:"xx", 33:"oo"]//使用了類型推理,這裏比較特殊的是 2和3 不能用 2.0 和 3 ,它不支持類型的轉換推理的
var namesOfIntegers = Dictionary<Int, String>()//空數組的建立
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)//add dicDefault.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 { println("key:\(key) value:\(value)\n") }
字典能夠用 values 返回全部值 keys返回全部關鍵字
var dicDefault = [1:"xx", 2:"oo"] var keys = dicDefault.keys var values = dicDefault.values for key in keys { println("key:\(key)\n") } for value in values { println("value:\(value)\n") }