【Swift】 Collections初识
来源:互联网 发布:宜人贷淘宝验证不了 编辑:程序博客网 时间:2024/06/05 22:43
声明:此博客是本人在泊学网学习Swift过程的笔记与心得
Dictionary
通过key值来查询value值的数据结构
初始化
// 可以通过[key.Type: value.Type]的形式来代表Dictionarylet dic: [String: Int] = [ "First": 1, "Second": 2, "Third": 3]
可以通过key值来获取对应的value值
dic["First"] // 1dic["Third"] // 3
而如果通过没有定义的key来获取值,则会返回一个nil
由于value的类型并不是单纯的value.Type而是Optional类型,因此可以设置成nil来代表key的不存在,于是,也可以通过设置key对应的value为nil来删除Dictionary中的值
dic["End"] // nil// 删除First对应的valuedic["First"] = nil
常用属性
Keys
Dictionary可以通过keys属性来获取当前Dictionary中所有的key,获取的对象可以通过forEach或for等方式来遍历(返回对象的类型较复杂)
dic.keys.forEach { print($0) }for key in dic.keys { print(key) }
Values
Dictionary可以通过values属性来获取当前Dictionary中所有的value,操作方式同Keys
增删改查
增
Swift中Dictionary对于增删改查有着极大的便利,增加元素只需要直接给Dictionary增加key与value就可以了,并不需要调用API
dic["Forth"] = 4
删
在上面写到过,删仅需要将key对应的value设置成nil即可
dic["Forth"] = nil
改
修改也是很简单的,就是把key对应的value修改即可
dic["First"] = 0
查
key对应value,通过key直接获取value
dic["First"] // 0
当然,这只是最基础的,如果需要遍历的操作,则可通过下面几种方式
遍历
首先说明,Dictionary中,key的存在是无序的,也就是说正常的遍历会得到不同顺序的结果
// 通过简单的for循环遍历// dic中是按照key,value的形式排列的for (key, value) in dic { print("\(key): \(value)")}// 通过forEach闭包遍历// 当$0与$1同时存在时,$0->key $1->valuedic.forEach { print("\($0): \($1)")}// 当仅有$0存在时,$0->(key: xxx, value, xxx)dic.forEach { print("\($0)") }
当然,如果强制要求按照固定的顺序遍历Dictionary也不是没办法,不过,就要从keys上动手脚
试想一下,如果keys的顺序每一次都是固定的,那么Dictionary其实也是固定顺序的了,下面是一个最简单的基于keys的排序实现:
for key in dic.keys.sorted() { print("\(key): \(dic[key]!)")}
阅读全文
0 0
- 【Swift】 Collections初识
- 【Swift】 Collections初识
- 【Swift】 Collections初识
- 【Swift】 Collections初识
- 初识Swift
- swift初识
- 初识swift
- Swift 初识
- 初识Swift
- 初识Swift
- 初识Swift
- 初识swift
- A Swift Tour(初识Swift)
- Swift学习1--初识Swift
- Swift学习之初识
- iOS--- 初识Swift小结
- Swift from Scratch: Collections and Tuples
- 初识 Swift编程语言(中文版)
- 38、不一样的C++系列--C++的异常处理
- Codeforces Gym 101190 (NEERC 2016) E. Expect to Wait (扫描线)
- 文章标题
- Java-解析XML
- CreateEvent 自动复位和手动复位的区别
- 【Swift】 Collections初识
- jQuery对象和javascript的对象的转化
- spring原理
- 开启动画用start
- 利用notifyDataSetChanged()方法实现启动活动之后更新 ListView
- GitHub学习之旅 之 HelloWorld
- Codeforces Gym 101190 (NEERC 2016) F. Foreign Postcards (dp + 期望)
- 【pg_rman】备份GIN索引bug
- 数据结构 最小生成树 Kruskal算法