HashMap更符合java集合框架的设计思路,更推荐使用。
对于map接口来说,它有两种比较重要的实现类HashMap和HashTable,他们保存元素的时候都是无序的,但是他们有一定的区别。
HashMap和HashTable的区别主要有以下几个方面:
1,HashTable的方法是同步的,HashMap不能同步,所以在多线程场合要使用HashTable。
2,HashTable不允许有null值(key和value都不可以),但是HashMap允许null值(key和value都可以)
3,HashTable有一个contains()方法,功能和containsValue()功能一样。
4,HashTable使用Enumeration,HashMap使用Iterator。
5,HashTable中hash数组的初始化大小及其增长方式不同。
6,哈希值的使用不同,Hashtable直接使用对象hashCode,而HashMap会重新计算hash值。