HashMap(解析可以参考HashMap)与Hashtable的区别
一、继承不同
HashMap:
public class java.util.HashMap extends java.util.AbstractMap implements java.util.Map
Hashtable:
public class java.util.Hashtable extends java.util.Dictionary implements java.util.Map
二、同步
HashMap:hashMap中的方法在缺省情况下是非同步的。在多线程并发的环境下,需要增加同步机制
Hashtable:hashtable中的方法是同步的
三、键值对
hashMap:
1)key可以为null,这样的键只有一个
2)value可以为null,可以有一个或者多个键对应的值为null。(需要注意的是,当get()方法返回的值为null,表示两种情况:一是不存在该键,二是该键对应的值为null)
四、遍历方式的内部实现不同
HashMap:使用了Iterator
Hashtable:使用了Iterator、Enumeration。
五、哈希值的使用不同
HashMap:需要重新计算hashcode
Hashtable:直接使用对象的hashcode
六、内部实现方式的数组初始化大小和扩容的方式
HashMap:
1)数组大小为:16
2)扩容:2的指数
Hashtable:
1)数组大小为:11
2)扩容:old*2+1
转载请注明原文地址: https://ju.6miu.com/read-900231.html