Java中的HashMap
和Hashtable
之间有几个区别:
Hashtable
等于synchronized,而HashMap
不是.这使得HashMap
更适合于非线程应用程序,因为非同步对象通常比同步对象执行得更好.
Hashtable
不允许有null
个键或值.HashMap
允许一个null
键和任意数量的null
值.
HashMap的一个子类是LinkedHashMap
,因此,如果需要可预测的迭代顺序(默认情况下是插入顺序),可以轻松地将HashMap
替换为LinkedHashMap
.如果你用Hashtable
,这就不那么容易了.
既然同步对您来说不是问题,我建议您使用HashMap
.如果同步成为问题,您也可以查看ConcurrentHashMap
.