HashMap和Hashtable的区别

标签 IT工具网 java

问题

在Java中HashMapHashtable的区别? 哪一个对于多线程应用程序更好?

回答

  1. Hashtable是同步的,加了synchronized锁,而HashMap不是。没有加synchronized锁的对象,性能通常比加了synchronized锁的对象要更好一些,因此,如果是非多线程程序,不需要考虑锁、同步等问题,那么使用HashMap更好。
  2. Hashtable不允许有空的键或值。HashMap允许空键和空值。
  3. HashMap有一个子类LinkedHashMap,对这个类对象进行迭代时,它的顺序是有序的(按插入顺序排序)。如有需要,你也能轻易的从LinkedHashMap转化成HashMapHashtable就没那么简单了,

总之,如果你无需关心同步(synchronized)问题,我会建议用HashMap。反之,你可以考虑使用ConcurrentHashMap

stackoverflow链接:

http://stackoverflow.com/questions/40471/differences-between-hashmap-and-hashtable

相关推荐:

importnew:HashMap和Hashtable的区别

相关文章:

JavaScript代码结构的最佳实践BP

java - 为什么字节总和本身不是字节类型?

java - ehcache-replicated.xml 可以放在 WEB-INF/classes 之外吗

IT工具网 - 导航

java - 如何测试 private 方法,变量或者内部类

java在调用 instanceof 前需要进行null检查吗

Java修饰符:public,protected,private,不加修饰符。有什么区别呢?

java - 无法通过启用proguard +使用parse sdk 1.8.2导出android应用程序

java - Spring-LDAP - 密码比较如何更新失败的密码尝试

java - 获取“java:不兼容的类型:java.lang.Object无法转换为org.testng.ISuiteResult”