Hashtable与HashMap及ConcurrentHashMap有什么区别呢?
下文笔者讲述Hashtable和HashMap和ConcurrentHashMap之间的区别,如下所示:
HashMap和Hashtable之间的区别:
1.HashMap不是线程安全的,HashTable是线程安全
2.HashMap允许空(null)的键和值(key),HashTable则不允许
3.HashMap性能优于Hashtable
HashTable容器使用synchronized来保证线程安全,
由于线程竞争,所以HashTable的效率非常低下
Map:
1.Map是一个以键值对存储的接口。Map下有两个具体的实现,分别是HashMap和HashTable.
2.HashMap是线程非安全的,HashTable是线程安全的,所以HashMap的效率高于HashTable.
3.HashMap允许键或值为空,而HashTable不允许键或值为空.
4.继承关系不同:
HashTable
public class Hashtable<K,V>
extends Dictionary<K,V>1.0
implements Map<K,V>, Cloneable, java.io.Serializable {}
HashMap
public class HashMap<K,V>
extends AbstractMap<K,V>1.2
implements Map<K,V>, Cloneable, Serializable{}
ConcurrentHashMap和HashMap都是线程安全的容器, 但是ConcurrentHashMap的性能比HashMap优秀
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


