Ruby 哈希表:内部工作机制深度解析
1. 哈希表基础与取值操作
哈希表在 Ruby 中是一个非常重要的数据结构。当我们需要从哈希表中获取特定键对应的值时,其优势就会显现出来。例如:
p my_hash[:key]
=> "value"
如果 Ruby 把所有的键值对存储在数组或链表中,那么要查找特定的键,就需要遍历整个数组或链表,这可能会花费很长时间,具体取决于元素的数量。但使用哈希表,Ruby 可以通过重新计算键的哈希值,直接定位到需要查找的键。
具体步骤如下:
1. 重新计算特定键的哈希值,Ruby 会再次调用哈希函数:
some_value = internal_hash_function(:key)
- 将哈希值除以桶(bin)的数量,得到余数(模):
some_value % 11 = 2
此时,Ruby 就知道要在编号为 2 的桶中查找键为 :key 的条目。对于 :key2 ,也可以通过重复相同的哈希计算来找到对应的值:
internal_hash_function(:key2) % 11 = 5
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



