我正在寻找哈希表如何工作的解释 - 用像我这样的傻瓜的简单英语!
例如,我知道它需要密钥,计算哈希值(我正在寻找解释如何)然后执行某种模数来计算它存储在存储值的数组中的位置,但这就是我的知识停止的地方.
任何人都可以澄清这个过程吗?
编辑:我没有具体询问如何计算哈希码,而是概述哈希表的工作原理.
我知道STL有一个HashMap API,但我找不到任何好的和全面的文档,并提供了很好的例子.
任何好的例子将不胜感激.
在我最近的一次软件工程师职位面试中,我被问到这样的问题:hashtable和hashmap之间有什么区别?我问面试官他是否具体是Java,因为在Java哈希表中是同步的,而hashmap不是(实际上谷歌搜索后的哈希表与哈希地图的比较大量的信息,所以这不是我要找的答案)但是他说没有和我想让我解释一下这两者的区别.
关于这个问题,我真的感到困惑和震惊(现在仍然感到困惑).IMO,hastable或hashmap只是一个术语问题.实际上只有Java既有术语又有其他语言如C++,它们甚至没有术语哈希表.在访谈中,我刚刚解释了哈希的原理,并说哈希图和哈希表都应该基于这个原则来实现,我不知道这两者之间是否有任何区别.面试官肯定不相信并且正在寻找其他答案,当然我在那一轮之后被拒绝了.
那么回到主题,如果有的话,一般(不是特定于Java)的hashmap和hashtable之间的区别可能是什么?