HashMap和Hashtable 的区别

简介: HashMap和Hashtable 的区别

 HashMap                Hashtable


父类                   AbstractMap          Dictiionary


是否同步              否                            是


k,v可否null        是                            否

 HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,


 主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。


 HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。


 HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。


 Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。


 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步(Collections.synchronizedMap)。


 Hashtable和HashMap采用的hash/rehash算法都大概一样,所以性能不会有很大的差异。

总结

     HashMap中键值 允许为空 并且是非同步

     Hashtable中键值 不允许为空同步

     继承不同,但都实现了Map接口




相关文章
|
6月前
|
安全 Java
HashMap和Hashtable的区别
HashMap和Hashtable的区别
34 2
|
5月前
|
存储 安全 Java
HashMap和HashTable的区别
HashMap和HashTable的区别
23 0
|
5月前
|
存储 容器
Hashmap1.7和1.8区别
Hashmap1.7和1.8区别
68 0
Hashmap1.7和1.8区别
|
10月前
|
安全
HashMap 和 HashTable 的区别
HashMap 和 HashTable 的区别
87 0
|
10月前
|
安全
Hashtable与ConcurrentHashMap的区别
Hashtable与ConcurrentHashMap的区别
|
存储 安全 Java
HashMap和Hashtable以及ConcurrentHashMap的区别
HashMap是在JDK1.2中引入的Map的实现类。
274 0
|
存储 安全
HashTable 与HashMap区别
HashTable 与HashMap区别
81 0
|
存储 安全 算法
HashMap和Hashtable的联系与区别
HashMap和Hashtable的联系与区别
137 0
HashMap和Hashtable的联系与区别
|
安全 Java
HashMap与HashTable的区别
HashMap与HashTable的区别
89 0
IntObjectHashMap和HashMap的区别?
IntObjectHashMap和HashMap的区别?
352 0
IntObjectHashMap和HashMap的区别?