1 Dictionary 概念
- 字典储存无序的互相关联的同一类型的键和同一类型的值的集合。
- 字典类型的全写方式 Dictionary,简写方式 [Key: Value],建议使用简写方式。
- 字典的 key 必须是可哈希的。
2 Dictionary创建
2.1 初始器创建方式
var dictionary = Dictionary<String,Int>()
2.2 简写创建方式
var dictionary = [String,Int]()
2.3 字面量创建方式
var dictionary: Dictionary<String,Int> = [:]
2.4 Dictionary的方法
- 可以使用 count 只读属性来找出 Dictionary 拥有多少元素。
- 使用布尔量 isEmpty 属性检查字典是否为空。
3 Dictionary的遍历
3.1 For-In 循环
let dictionary = ["zhangsan": 7,"lisi": 8,"wangwu": 9]
for(key,value) in dictionary{
print("name = \(key) , age = \(value)")
let dictionary = ["zhangsan": 7,"lisi": 8,"wangwu": 9]
for key in dictionary.keys.sorted(){
print("name = \(key),age = \(dictionary[key])")
4 Dictionary的常用操作
4.1 添加或更新元素
- 使用下标添加或更新元素。
- 使用 updateValue(_:forKey:) 方法添加或更新元素,返回一个字典值类型的可选项值。
4.2移除元素
4.3 合并两个字典
- merge(_:uniquingKeysWith:)
var dictionary = ["zhangsan": 7,"lisi": 8]
dictionary.merge(["zhangsan":17,"wangwu": 19]) {(current, _) in current}
dictionary.merge(["zhagnsan": 27,"niuliu": 30]) {(current, _) in current}
4.4 fifirstIndex
- 虽然字典是无序的,但是每个kv对在扩容之前的位置是稳定的。如果你需要保持顺序的kv对 可以使用 KeyValuePairs。