Java提高之HashMap与Hashtable的区别

来源:互联网 发布:上海java培训哪个好 编辑:程序博客网 时间:2024/05/21 13:59

前面分别介绍了HashMap和Hashtable,接下来简单比较一下二者的区别。


基本环境


本文源码基于Java API为Android API 25 Platform下的 Java API

/Users/du/Library/Android/sdk/platforms/android-25/android.jar!/java/util/HashMap.class 和

/Users/du/Library/Android/sdk/platforms/android-25/android.jar!/java/util/Hashtable.class


相同点


●  都基于哈希原理实现,使用拉链法解决哈希冲突

●  都是存储key-value键值对

●  都实现了Cloneable、Serializable接口


不同点


●  时间上,Hashtable比HashMap出现的早,Hashtable since JDK1.0, HashMap since JDK1.2

●  实现上,Hashtable继承了抽象类Dictionary[这是一个废弃的类],HashMap继承自抽象类AbstractMap

●  Key-Value键值对处理上,Hashtable的Key/Value都不能为null,HashMap则都可以为null

●  Hashtable线程安全,HashMap线程不安全