1、是否线程安全:
hashmap 非线程安全,hashtable 线程安全(底层用了synchronize修饰),所以hashmap的效率比hashtable高,hashmap想要保证线程安全可以用从concurrentHashMap
2、底层实现
hashmap 数组+链表+红黑树,
hashtable 数组+链表(没有链表长度>8则链表转换为红黑树的机制)
3、初始容量和扩容方式
hashmap 初始容量16,扩容方式2的n次方
hashtable 初始容量11, 扩容方式2*old+1
4、key和value是否可以为空
hashmap 的key和value都可以为空,但只允许一个key为空
hashtable的key和value都不允许为空
5、迭代方式
hashmap用Enumeration
hashtable用Iterator