继承接口 、键值对、线程安全性、高效性、判空方案
两者都实现了map接口,几乎等价
区别可以从线程安全,synchronized,速度这几方面来考虑。
- HashMap允许键值为null的key-value,HashTable不允许
- HashMap是非线程安全的。HashTable是线程安全的,通过synchronized实现
- HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast的。
- HashMap不能保证随着时间的推移Map中的元素次序是不变的。