HashMap和HashTable的区别

HashMap 和HashTable有什么区别呢? 这个问题在stackOverflow上面有接近3000个提问,虽然是一个基础的知识点,作为热门问题翻译的分类,我觉的也可以翻译一下,具体的区别还是建议大家在阅读源码的基础上,体会这2个类的设计意图。

大概有3点不同:

  • HashTable是线程安全的,HashMap不是,HashMap更适用于非线程安全的环境,如果类本身就不存在共享,非线程安全效率更高,推荐适用HashMap。
  • HashTable的key和value都不允许null,HashMap允许有一个null的key和任意多个null的value。
  • HashMap有一个子类是LinkedHashMap,如果你想读的时候的顺序和写的时候顺序一样的话,可以很轻松的把HashMap修改为LinkedHashMap就实现了这个特性,如果以前使用的是HashTable,就没有这么方便了。

翻译完。

转载请标示: http://hushengdong/2016/12/20/HashMap和HashTable的区别/