1、定義字典(3種方法)
var dict1 = [1:"one",2:"two",3:"three"]//第一種
var dict2:[Int:String] = [1:"one",2:"two",3:"three"]//第二種
var dict3:Dictionary<Int,String> = [1:"one",2:"two",3:"three"]//第三種
2、定義空字典(3種方法)
var d1:[Int:String] = [:]//第一種
var d2:Dictionary<Int,String> = [:]//第二種
var d3 = [Int:String]()//第三種
3、基本操作
var dict1 = [1:"one",2:"two",3:"three"]
print(dict1.count) //打印數(shù)組長度
print(dict1.isEmpty) //判斷值是否為空
print(dict1[1]!) //取值 (返回值是一個可選型,通過!進(jìn)行解包)
//字典的特點:
1)無序
2)鍵不能重復(fù)
let d1 = [1:"a",2:"b",3:"d"]
let d2 = [2:"b",1:"a",3:"d"]
print(d1==d2)//判斷是否一致
以上程序執(zhí)行輸出結(jié)果為:
3
false
one
true
4、遍歷字典(每個key對應(yīng)唯一一個 value值)
var dict1 = [1:"one",2:"two",3:"three"]
for (key, value) in dict1 {
print(" key \(key) - value \(value)")
}
以上程序執(zhí)行輸出結(jié)果為:
key 1 - value one
key 2 - value two
key 3 - value three
5、增刪改
// updateValue有兩種不同意義的操作
(1)如果這個Key當(dāng)前不存在,updateValue進(jìn)行添加操作;
(2)如果當(dāng)前這個Key存在,updateValue進(jìn)行修改操作;
//改
var user=["name":"張宇","pwd":"39","like":"eat"]
user["like"] = "sleep"http://修改like中對應(yīng)的eat改為sleep
print(user)
//user.updateValue("456",forKey:"pwd")//更新值
var oldPwd = user.updateValue("456",forKey:"pwd")!//返回原來value的值
if oldPwd == user["pwd"]{
print("修改后的密碼與修改前一樣,可能會導(dǎo)致安全問題!")
}
print(user)
//添加
user["email"] = "2541630792@qq.com"
user.updateValue("Fuyang",forKey:"location")
print(user)
//刪除
user.removeValue(forKey:"like")
user["like"] = nil //null
print(user)
總結(jié):什么時候我們采用哪種類型?
數(shù)組:有序的;
set: 無序、唯一性、交集并集等集合專有的操作速度高
字典:key-value對