2

hashmap 和 hashtable 的内部数据结构有什么不同,体现在以下差异上?

  1. Hashmap 允许一个空键,而 hashtable 不允许。
  2. Hashmap 不保证要维护的顺序 - 虽然我还没有阅读过哈希表的内容。

我认为它们本质上都是内部的“桶”数组。

4

3 回答 3

2

而因为它们都使用哈希值来识别其中的元素。所以他们不能保证订单。对于您提到的差异,这是因为它们扩展了不同的抽象类。字典是一个抽象映射类,其键必须是非空值。而且只有 1 条建议,对于这种你可以在 JDK 中找到更多东西的问题,不要害怕检查它。

public class Hashtable<K,V>
    extends Dictionary<K,V>
    implements Map<K,V>, Cloneable, java.io.Serializable {

public class HashMap<K,V>
    extends AbstractMap<K,V>
    implements Map<K,V>, Cloneable, Serializable
于 2013-03-31T03:56:24.540 回答
0

是的,内部都维护数组存储桶。我可以看到Hashtable类的synchronized方法HashMap是方法不是。

以供参考

于 2013-03-31T05:04:02.910 回答
0

除非您正在学习考古学,否则您应该使用 HashMap 和 ConcurrentHashMap(线程安全)。并且请将它们分配给 Map 接口实例,除非您使用特定于任何一个的方法。

于 2013-03-31T11:31:09.483 回答