19 深入理解数组:底层探究
2023-03-08 本文已影响0人
为了自由的白菜
深入理解数组:底层实现探究
数组的协议结构
image-20230223225002236.pngSequence
- 一个序列(sequence)代表的是一系列具有相同类型的值,你可以对这些值进行迭代
IteratorProtocol
- Sequence通过创建一个迭代器来提供对元素的访问。迭代器每次产生一个序列的值,并且当遍历序列时对遍历状态进行管理
- 当序列被耗尽时,next()应该返回nil
定义自己的Sequence
image-20230223225527781.pngCollection
- 一个Collection是满足下面条件的Sequence
- 稳定的Sequence,能够被多次遍历且保持一直
- 除了线性遍历以外,集合中的元素也可以通过下标索引的方式被获取到
- 和Sequence不同,Collection类型不能是无限的
Array的迭代器
image-20230223225955643.pngArray的下标访问
image-20230223230201634.pngArray的buffer
image-20230223230254677.png_ContiguousArrayBuffer
image-20230223230337486.png_ContiguousArrayBuffer的getElement
image-20230223230452680.pngUnsateMutablePointer的下标操作
image-20230223230556548.png问题:endIndex vs count
image-20230223230716982.png索引
image-20230223230754798.png image-20230223230928605.png课后探索
- 学习removeFirst方法的源码,得出removeFirst的复杂度
- 学习sort方法的源码,了解Array的排序方法