hashmap和hashtable的区别

以下是为您整理出来关于【hashmap和hashtable的区别】合集内容,如果觉得还不错,请帮忙转发推荐。

【hashmap和hashtable的区别】技术教程文章

HashMap 和 HashTable 的区别

1.容器整体结构: HashMap的key和value都允许为null,HashMap遇到key为null的时候,调用putForNullKey方法进行处理,而对value没有处理。 Hashtable的key和value都不允许为 null。Hashtable遇到null,直接返回NullPointerException。 2.容量设定与扩容机制: HashMap默认初始化容量为16,并且容器容量一定是 2的n次方,扩容时,是以原容量2倍的方式进行扩容。 Hashtable默认初始化容量为11,扩容时,是以原容量2倍再加1的方式进行扩...

面试系列-HashMap和Hashtable的区别【代码】

线程安全两者最主要的区别在于Hashtable是线程安全,而HashMap则非线程安全。Hashtable的实现方法里面都添加了synchronized关键字来确保线程同步,因此相对而言HashMap性能会高一些,我们平时使用时若无特殊需求建议使用HashMap,在多线程环境下若使用HashMap需要使用Collections.synchronizedMap()方法来获取一个线程安全的集合(Collections.synchronizedMap()实现原理是Collections定义了一个SynchronizedMap的内部类,这个类实...

HashMap 和 Hashtable 的区别

HashMap 允许 key 和 value 为 null,Hashtable 不允许。HashMap 的默认初始容量为 16,Hashtable 为 11。HashMap 的扩容为原来的 2 倍,Hashtable 的扩容为原来的 2 倍加 1。HashMap 是非线程安全的,Hashtable是线程安全的。HashMap 的 hash 值重新计算过,Hashtable 直接使用 hashCode。HashMap 去掉了 Hashtable 中的 contains 方法。HashMap 继承自 AbstractMap 类,Hashtable 继承自 Dictionary 类。