Swift 集合類型

 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")
}
相關文章
相關標籤/搜索