HashMap 与 Hashtable 在开发中是很常用的。他们的优点都是因为有key,所有进行查找是很方便的。
对于HashMap 由于其是以牺牲空间来获得时间复杂度为O(1),所以对于数据量比较小的话,还是建议不要轻易使用他。
HashMap 允许null作为Key,也允许null的Value了。
Hashtable 不允许null作为key,也不允许null作为 value。
HashMap 是线程非安全的,但Hashtable 是线程安全的。
Hashtable
的实例有两个参数影响其性能:初始容量 和加载因子。
容量 是哈希表中桶 的数量,初始容量 就是哈希表创建时的容量
HashMap 的初始容量是16,而 Hashtable 的初始容量是11。
他们的加载因子都是0.75。 之所以是0.75,时间和空间成本上寻求一种折衷。加载因子过高虽然减少了空间开销,但同时也增加了查找某个条目所消耗的时间。