在Java中HashMap
和Hashtable
的区别?
哪一个对于多线程应用程序更好?
Hashtable
是同步的,加了synchronized
锁,而HashMap
不是。没有加synchronized
锁的对象,性能通常比加了synchronized
锁的对象要更好一些,因此,如果是非多线程程序,不需要考虑锁、同步等问题,那么使用HashMap
更好。Hashtable
不允许有空的键或值。HashMap
允许空键和空值。- HashMap有一个子类LinkedHashMap,对这个类对象进行迭代时,它的顺序是有序的(按插入顺序排序)。如有需要,你也能轻易的从
LinkedHashMap
转化成HashMap
。Hashtable
就没那么简单了,
总之,如果你无需关心同步(synchronized)问题,我会建议用HashMap
。反之,你可以考虑使用ConcurrentHashMap
http://stackoverflow.com/questions/40471/differences-between-hashmap-and-hashtable
importnew:HashMap和Hashtable的区别