【发布时间】:2016-07-18 18:01:15
【问题描述】:
在我最近一次软件工程师职位的面试中,有人问我这个问题:hashtable 和 hashmap 之间有什么区别?我问面试官他是否具体了解 Java,因为在 Java 中 hashtable 是同步的,而 hashmap 不是(实际上有大量信息可以在谷歌搜索后比较 Java 中的 hashtable 与 hashmap,所以这不是我要寻找的答案),但他说不,并且想让我解释一下这两者的区别。
我对这个问题感到非常困惑和震惊(实际上现在仍然很困惑)。 IMO、hastable 或 hashmap 只是一个术语问题。实际上只有 Java 有这两个术语,而在 C++ 等其他语言中,它们甚至没有术语哈希表。面试的时候刚刚解释了hash的原理,说hashmap和hashtable都应该基于这个原理来实现,不知道这两者有没有区别。面试官肯定不服气,一直在寻找其他答案,当然我在那轮之后被拒绝了。
回到主题,hashmap 和 hashtable 之间可能有什么区别(不是 Java 特有的)?
【问题讨论】:
-
跟进,看起来 C# 中的字典和哈希表之间存在差异,但这不是我想要的。