Swift学习笔记三(Dictionary 篇)

本文详细介绍了Swift中的Dictionary数据结构,包括其概念、创建方法(初始器、简写和字面量)、遍历(for-in循环与sorted()方法)、常用操作(添加/更新元素、移除、合并以及顺序性),帮助开发者理解和使用字典。
摘要由CSDN通过智能技术生成

1 Dictionary 概念

  • 字典储存无序的互相关联的同一类型的键和同一类型的值的集合。
  • 字典类型的全写方式 Dictionary<Key, Value>,简写方式 [Key: Value],建议使用简写方式。
  • 字典的 key 必须是可哈希的。

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)
 */

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。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值