hashmap 和 hashtable 的内部数据结构有什么不同,体现在以下差异上?
- Hashmap 允许一个空键,而 hashtable 不允许。
- Hashmap 不保证要维护的顺序 - 虽然我还没有阅读过哈希表的内容。
我认为它们本质上都是内部的“桶”数组。
hashmap 和 hashtable 的内部数据结构有什么不同,体现在以下差异上?
我认为它们本质上都是内部的“桶”数组。
而因为它们都使用哈希值来识别其中的元素。所以他们不能保证订单。对于您提到的差异,这是因为它们扩展了不同的抽象类。字典是一个抽象映射类,其键必须是非空值。而且只有 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
除非您正在学习考古学,否则您应该使用 HashMap 和 ConcurrentHashMap(线程安全)。并且请将它们分配给 Map 接口实例,除非您使用特定于任何一个的方法。