- 字典存储的数据是键和值的数据对
- 所存储的数据中,键和值可以是任意数据类型,包括基础的数据类型,但字典对键的数据类型有一个要求,即键的数据类型要是可以哈希化的
- 一个字典只能存储固定一种键和值的数据类型搭配
声明字典
//隐式声明字典所存储的数据类型
var dictionary = [1:"a",2:"b",3:"c"]
//显式声明字典所存储的数据类型
var dictionary1:Dictionary<Int,String> = [1:"a",2:"b",3:"c"]
var dictionary2:[Int:String] = [1:"a",2:"b",3:"c"]
//声明一个空的字典
var dic = [Int:String]()
var dic1 = Dictionary<Int,String>()
常用操作
//清空一个字典
dictionary = Dictionary<Int,String>()
dictionary1 = [Int:String]()
dictionary2 = [:]
var exmDic = ["first":"a","second":"b","third":"c"]
//查看字典有多少个数据对
exmDic.count
//判断一个字典是否为空
exmDic.isEmpty
//访问字典中的某一个数据,注意,对于字典而言不存在越界的问题,如果某个键值没有对应的值则返回nil,也就是说返回值是一个可选型
exmDic["first"] //"a"
exmDic["fourth"] //nil
"hello "+exmDic["first"]!
//插入新元素
exmDic["fourth"] = "dd"
//修改某个元素
exmDic["first"] = "aa"
exmDic.updateValue("aa", forKey: "first") //此方法的返回值是将要修改的键值对应的原来的数据
//删除某个元素
exmDic["first"] = nil
exmDic.removeValue(forKey: "first")//此方法的返回值是将要修改的键值对应的原来的数据
遍历字典
//获取字典中所有的键
exmDic.keys //并不是简单数组类型
//强制转换为数组类型
Array(exmDic.keys)
[String](exmDic.keys)
//获取字典中所有的值
exmDic.values //不是数组类型
//遍历字典
//方法一
for (key,value) in exmDic{
print("\(key):\(value)")
}
for key in exmDic.keys{
print(exmDic[key])
}
for value in exmDic.values{
print(value)
}