相同点:
1.底层数据结构相同,都为数组+链表
2.key都不能重复
3.插入元素不能保证有序
4.都是通过key进行哈希
不同点:
1.安全性问题
HashTable中的方法都有Synchronized修饰,线程安全:在多线程访问情况下,
2.继承关系:
hashMap继承AbstractMap
hashTable继承Dictionary
3.扩容方式:
HashMap为2倍(2*table.length),HashTable为2的倍数+1[(2*table.length)+1]
4.null值:
HashTable的键值不能为空。hashMap键值可以为空
5.默认值:
hashTable数组默认大小11
hashMap数组默认大小16
6.hash算法不同:
7.效率不同:
hashMap在单线程下效率高
hashTable在单线程下效率低