您的位置:首页 > 其它

字典大致实现原理

2017-11-22 16:25 274 查看
一、NSDictionary使用原理

    1.NSDictionary(字典)是使用 hash表来实现key和value之间的映射和存储的,hash函数设计的好坏影响着数据的查找访问效率。

    - (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;

   2.Objective-C 中的字典 NSDictionary 底层其实是一个哈希表,实际上绝大多数语言中字典都通过哈希表实现,

二、哈希的原理

   哈希概念:哈希表的本质是一个数组,数组中每一个元素称为一个箱子(bin),箱子中存放的是键值对。

    

三、哈希表的存储过程

    1. 根据 key 计算出它的哈希值 h。

    2. 假设箱子的个数为 n,那么这个键值对应该放在第 (h
% n) 个箱子中。

    3. 如果该箱子中已经有了键值对,就使用开放寻址法或者拉链法解决冲突。

    在使用拉链法解决哈希冲突时,每个箱子其实是一个链表,属于同一个箱子的所有键值对都会排列在链表中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: