5.集合类

2020-05-06  本文已影响0人  迷心迷

创建数组

字面量创建

字面量创建空数组

初始化器
03
初始化器参数
数组遍历和索引
数组遍历

无法使用 break 或 continue 跳出或者跳过循环
使用 return 只能退出当前一次循环的执行体


06
索引

数组的查找操作

判断是否包含指定元素
判断所有元素符合某个条件
查找元素
11
查找索引
查找最大最小元素

数组添加和删除

在末尾添加
在任意位置插入
17

字符串也是 Collection

移除单个元素
移除多个元素
ArraySlice
移除多个元素
通过 Drop 得到 ArraySlice
通过 prefix 得到 ArraySlice
通过 suffix 得到 ArraySlice
通过 Range 得到 ArraySlice

ArraySlice 转为 Array

ArraySlice 和原 Array 相互独立

重排操作

数组元素的随机化
30
数组的逆序
数组的分组
数组的排序
33
交换数组两个元素

拼接操作

字符串数组拼接
元素为 Sequence 数组的拼接
36

数组探秘

数组的协议结构

37
Sequence
IteratorProtocol
定义自己的 Sequence
40
Collection
Array 的迭代器
42
Array 的下标访问
43
Array 的 buffer
44
_ContiguousArrayBuffer
45
_ContiguousArrayBuffer 的 getElement
46
UnsafeMutablePointer 的下标操作
47
问题:endIndex vs count
48
索引
49 50

实现栈和队列

Stack
Queue
52

Set

集合的三个特性
Swift 里面的集合
创建 Set
Set 类型的哈希值
54
访问和修改 Set
遍历 Set
访问 Set
添加元素
移除元素
执行 Set 操作
基本 Set 操作的定义
62
Set 判断方法

Set 算法

思路1 - 位
思路2 - 递归

Set 实现探秘

从 Set 的 insert 说起
67
_NativeSet 的 find 方法
68
HashTable
69 70
线性探测的开放寻址法
71
_NativeSet 的 insertNew
72
HashTable 的 insertNew
73
_NativeSet 的 uncheckedInitialize
74

字典

Dictionary
创建空字典
字面量创建字典
count 和 isEmpty
遍历字典
77

字典常用操作

添加或更新元素
移除元素
合并两个字典
78
firstIndex

字典实现探秘

从下标操作谈起
80
Dictionary._Variant 的 setValue
81
_NativeDictionary 的 setValue
82
_NativeDictionary 的 _insert
83
_NativeDictionary 的 uncheckedInitialize
84
_NativeDictionary 的 findKey
85
上一篇 下一篇

猜你喜欢

热点阅读