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优秀
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。