散列表-OC方法缓存

2019-03-03  本文已影响0人  有毒的程序猿

1、散列表

2、OC方法缓存

散列表.jpeg

3、OC散列表原理

空的散列表.jpg
比如我们有一个方法
- (void)cacheMethd {
}

key = @selector(cacheMethd) // 方法名
_mask                                          //  常量
index = @selector(cacheMethd) & _mask;
算出来比如说index = 2
存取数据都是通过算出数组下标  来存储或者获取数据
image.png
// 存数据
如果index = @selector(cacheMethd) & _mask;
算出来的index已经存在数据

while(bucket[index]) {
       index --;
       if(index < 0) {
            index = 数组count - 1;
        }
}

// 取数据
算出index = @selector(cacheMethd) & _mask;
取出bucket_t

对比key是否相等
相等直接返回
不等
while(bucket[index]) {
       index --;
       if(index < 0) {
            index = 数组count - 1;
        }
}
继续判读

上一篇 下一篇

猜你喜欢

热点阅读