共计 522 个字符,预计需要花费 2 分钟才能阅读完成。
-
线程安全性:Hashtable 是线程安全的,而 HashMap 是非线程安全的。如果需要在多线程环境下使用,应该使用 Hashtable 或者使用 ConcurrentHashMap 代替 HashMap。
-
null 键值:Hashtable 不允许键值为 null,如果试图存储 null 键值会抛出 NullPointerException 异常;而 HashMap 允许键值为 null,可以存储 null 键值。
-
继承关系:Hashtable 是基于 Dictionary 类的一个具体实现类,而 HashMap 是基于 AbstractMap 类的一个具体实现类。Hashtable 已经不推荐使用,应该使用 HashMap 或者 ConcurrentHashMap 代替。
-
迭代器:Hashtable 的迭代器是通过 Enumeration 接口实现的,而 HashMap 的迭代器是通过 Iterator 接口实现的。使用 Iterator 接口更方便、更安全。
-
初始容量和扩容机制:Hashtable 的初始容量为 11,负载因子为 0.75,扩容时容量翻倍;而 HashMap 的初始容量为 16,负载因子为 0.75,扩容时容量增加为原容量的两倍。HashMap 的默认初始容量更大,性能更好。
丸趣 TV 网 – 提供最优质的资源集合!
正文完