美文网首页
HashMap和Hashtable

HashMap和Hashtable

作者: 三年级一班亚索 | 来源:发表于2018-11-10 16:54 被阅读12次

参考:
HashMap和Hashtable的区别 > http://www.importnew.com/7010.html

HashMap和Hashtable的区别

HashMap和Hashtable都实现了Map接口,他们的主要区别有:线程安全性,同步,以及速度。

  • HashMap几乎可以等价于Hashtable,HashMap是非synchronized的(如果多个线程没有正确同步,多个线程不能共享),并可以接受null(HashMap可以接受为null的key和value,而Hashtable不行)。
  • HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast的。所以当有其它线程改变了HashMap的结构(增加或者移除元素),将会抛出ConcurrentModificationException
  • 由于Hashtable是线程安全的也是synchronized,所以在单线程环境下它比HashMap要慢。如果你不需要同步,只需要单一线程,那么使用HashMap性能要好过Hashtable。
    也就是说Hashtable和HashMap有几个主要的不同:线程安全以及速度。仅在你需要完全的线程安全的时候使用Hashtable,而如果你使用Java 5或以上的话,使用ConcurrentHashMap。

相关文章

网友评论

      本文标题:HashMap和Hashtable

      本文链接:https://www.haomeiwen.com/subject/jlezxqtx.html