哈希表-给定密钥的哈希计算频率
hash table - how often is the hash calculated for a given key?
我在一次采访中被问到这个问题。我的即时答案是阅读和写作。面试官接着问道:"你确定哈希没有缓存在表中的某个地方吗?"
这让我对自己产生了怀疑。最后,我坚持了原来的答案,但出于好奇,我想我会把问题放在这里。
还要注意,这次面试是针对JavaScript职位的,但这个问题并不一定是JavaScript特有的。
那么,一般来说,密钥的哈希是计算一次还是每次读/写?JavaScript特有的功能是什么?
当然,这取决于实现,即使你问JS,也有几个实现(V8、SpiderMonkey、MSFT等)
它还应该取决于应用程序。如果您的应用程序更频繁地使用放入哈希表的最后一项,那么以某种方式缓存哈希应该是有意义的。在某些情况下,这会更可取。
我想面试官只是想看看你是如何应对事后猜测的。。。
这取决于哈希表和密钥类型,以及我们谈论的是用于读/写的密钥还是表中已经存在的密钥。前者的哈希值可以而且有时会缓存在对象中(例如:Python中的字符串)。后者的哈希值可以而且有时会缓存在表中——而不是存储哈希、键、值三元组的键、值对。
在这两种情况下,决策都取决于密钥的类型:它们大且哈希昂贵吗?它值得额外的空间和内存流量吗?例如,对于大于几十个字符的字符串来说,这可能是一个明显的胜利,对于2D点来说可能是无用或有害的。还要注意,散列值可以用来避免比较,可能很有用,但似乎没有那么重要。
相关文章:
- 根据选项卡内部的文本链接中的哈希ID动态选择jqueryUI选项卡
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- AngularJS:获取链接中没有哈希的查询字符串值
- 如何在Google chrome安全首选项文件中创建扩展安全哈希代码
- 如何在浏览器重新加载时保存位置哈希状态
- jQuery scrollTop-哈希错误
- 动态添加哈希标记;t工作
- 在Javascript中实现对哈希值的暴力攻击
- 如何在JavaScript/Node中计算SHA256哈希和Base64字符串编码
- 使用Javascript/jQuery以编程方式将当前锚点/哈希/片段附加到任何表单操作url
- 可以在React Native中制作一个自哈希应用程序
- 如何在 Postman 中的预请求脚本中计算 md5 哈希
- 使用 JavaScript 计算 Blob 的哈希值
- 如何计算字符串集合(0.5000个元素)的哈希代码
- 为什么使用CryptoJS的哈希计算会在Angular中导致$rootScope:infdig错误
- 在 JavaScript 中计算文件的 SHA-256 哈希和 B64
- 哈希表-给定密钥的哈希计算频率
- 计算流的sha1哈希值,但仍使用该流
- Cordova计算大文件的sha1哈希值而不会耗尽内存
- JavaScript根据实数和整数计算哈希代码