一张表格知道HashMap与HashTable的区别

在业务开发当中,HashMap与HashTable都是用key-value的形式来存储数据,并且都是使用hashing技术来存储key,但是也有许多的同步之处。

HashMapHashTable
1.HashMap是非同步的,并且不是线程安全的HashTable是同步的,并且是线程安全的
2.HashMap允许一个null作为key,允许多个null作为valueHashTable不允许有null键或者null值
3.HashMap是在JDK1.2被引入的HashTable是一个遗留的类
4.HashMap是高效快速的HashTable因为有了同步机制,效率差很多
5.可以通过Map m = Collections.synchronizedMap(hashMap);来使用同步的HashMap本身就是同步的,但不能取消同步
6.HashMap使用Iterator迭代器遍历HashTable使用Enumerator和Iterator进行遍历
7.HashMap的Iterator是快速失败的HashTable的Enumerator不是快速失败的
8.HashMap继承自AbstractMap类HashTable继承自Dictionary类