1 Dictionary 概念
- 字典储存无序的互相关联的同一类型的键和同一类型的值的集合。
- 字典类型的全写方式 Dictionary<Key, Value>,简写方式 [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 循环
- 可以通过访问字典的 keys 和 values 属性来取回可遍历的字典的键或值的集合。
-
Swift 的 Dictionary 类型是无序的。要以特定的顺序遍历字典的键或值,使用键或值的sorted() 方法。
let dictionary = ["zhangsan": 7,"lisi": 8,"wangwu": 9]
for(key,value) in dictionary{
print("name = \(key) , age = \(value)")
}
/**
name = zhangsan , age = 7
name = lisi , age = 8
name = wangwu , age = 9
*/
let dictionary = ["zhangsan": 7,"lisi": 8,"wangwu": 9]
for key in dictionary.keys.sorted(){
print("name = \(key),age = \(dictionary[key])")
}
/**
name = lisi,age = Optional(8)
name = wangwu,age = Optional(9)
name = zhangsan,age = Optional(7)
*/
4 Dictionary的常用操作
4.1 添加或更新元素
- 使用下标添加或更新元素。
- 使用 updateValue(_:forKey:) 方法添加或更新元素,返回一个字典值类型的可选项值。
4.2移除元素
- 使用下标脚本语法给一个键赋值 nil 来从字典当中移除一个键值对。
-
使用 removeValue(forKey:)来从字典里移除键值对。这个方法移除键值对如果他们存在的话,并且返回移除的值,如果值不存在则返回 nil 。
4.3 合并两个字典
- merge(_:uniquingKeysWith:)
var dictionary = ["zhangsan": 7,"lisi": 8]
dictionary.merge(["zhangsan":17,"wangwu": 19]) {(current, _) in current}
print(dictionary)
dictionary.merge(["zhagnsan": 27,"niuliu": 30]) {(current, _) in current}
print(dictionary)
/**
["lisi": 8, "zhangsan": 7, "wangwu": 19]
["niuliu": 30, "zhagnsan": 27, "wangwu": 19, "lisi": 8, "zhangsan": 7]
*/
4.4 fifirstIndex
- 虽然字典是无序的,但是每个kv对在扩容之前的位置是稳定的。如果你需要保持顺序的kv对 可以使用 KeyValuePairs。
文章来源地址https://www.toymoban.com/news/detail-704172.html
文章来源:https://www.toymoban.com/news/detail-704172.html
到了这里,关于Swift学习笔记三(Dictionary 篇)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!