简单总结一下HashMap和Hashtable的7个区别

前世今生
Hashtable是java一开始发布时就提供的键值映射的数据结构,而HashMap产生于JDK1.2。
虽然Hashtable比HashMap出现的早一些,但是现在Hashtable基本上已经被弃用了。而HashMap已经成为应用最为广泛的一种数据类型了。而Hashtable是线程安全的,效率比较低。取而代之的是ConcurrentHashMap。ConcurrentHashMap虽然也是线程安全的,但是它的效率比Hashtable要高好多倍。因为ConcurrentHashMap使用了分段锁,并不对整个数据进行锁定。HashMap是JDk1.2之后有的,而在JDK1.5中,有了concurrent包,也就是有了ConcurrentHashMap,Map也有安全的了。

HashMap和Hashtable的区别

1.父类不同
HashMap是继承自AbstractMap类,而HashTable是继承自Dictionary(已被废弃),
不过它们都实现了同时实现了map、Cloneable(可复制)、Serializable(可序列化)这三个接口。

注意
Hashtable比HashMap多提供了elments() 和contains() 两个方法。
elments() 方法继承自Hashtable的父类Dictionnary。elements() 方法用于返回此Hashtable中的value的枚举

contains()方法判断该Hashtable是否包含传入的value。它的作用与containsValue()一致。事实上,contansValue() 就只是调用了一下contains() 方法

2.存储null
Hashtable既不支持Null key也不支持Null value

HashMap中,n

你可能感兴趣的:(Java基础)