iOS:字典存储数据的原理
注:适用于Java 等其他语言的技术原理
存储的逻辑
1. 字典底层有一个数组,靠数组来存储数据;
2. 将 key 进行 hash 算法。得到 `hash值`;
3. 将 `hash值` 与 `数组的长度` 进行`位与运算`, 得到的结果为数据应该存储的位置;
4. 找到数组对应的位置,然后设置对应的数据(此处使用链表①进行数据存储)。
取出的逻辑
1. 将 key 进行 hash 算法。得到 `hash值`;
2. 将 `hash值` 与 `数组的长度` 进行`位与运算`, 得到的结果为数据应该存储的位置;
3. 然后找到对应位置的数据。如果不是则判断其 Next。
总结:
其实字典,就是使用 key 得到应该存储的位置。
然后进行添加数据和取出数据
字典和数组的执行效率
数组:一个一个的遍历。
字典:根据 key 直接知道对应的索引值
总结:
因为不知道要查询的数据的索引,所以字典的查询速度更快,执行效率更高。
在查询大量数据的时候,尽量使用字典。
解释:
①链表:自己去查查

浙公网安备 33010602011771号