HashMap和Hashtable之间的区别

HashMap和Hashtable都用于以键值对的形式存储数据。它们都使用哈希技术来存储唯一的键。

但是HashMap和Hashtable类之间存在许多差异,如下所示。

HashMapHashtable
1) HashMap是非同步的。它不是线程安全的,如果没有适当的同步代码,就不能在多个线程之间共享。Hashtable是同步的。它是线程安全的,可以与多个线程共享。
2) HashMap允许一个空键和多个空值Hashtable不允许任何空键或空值
3) HashMap是在JDK 1.2中引入的新类Hashtable是一个旧的类
4) HashMap是快速的Hashtable是慢速的
5) 我们可以通过调用以下代码将HashMap变为同步的:Map m = Collections.synchronizedMap(hashMap);Hashtable在内部是同步的,不能取消同步。
6) HashMap通过迭代器遍历Hashtable通过Enumerator和迭代器遍历
7) HashMap中的迭代器是快速失败的Hashtable中的Enumerator不是快速失败的。
8) HashMap继承自AbstractMap类。Hashtable继承自Dictionary类。

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想