文档章节

hashmap与hashtable的区别

leiline
 leiline
发布于 2017/09/03 16:06
字数 396
阅读 9
收藏 0

阿里云携手百名商业领袖、技术大咖,带您一探行进中的数字新基建!>>>

hashMap与hashtable都实现了map接口,但是他们之间是有区别的。主要的区别在于:线程安全性,同步以及执行速度。

一般来说,hashmap和hashtable是等价的,但它们之间有以下几个区别:

  • hashmap是非synchronized,hashtable是synchronized。所以,hashtable是线程安全的,多个线程共享一个hashtable;而hashmap是线程不安全的。

  • hashtable是线程安全的,所以在单线程环境下hashmap要慢一些。如果不需要同步,只需要单一线程,那么hashmap要比hashtable更好一些。

  • hashmap不能保证随着时间的推移map中的元素次序是不变的。

如果需要使用多线程,可以使用ConcurrentHashMap来替代HashTable

  • sychronized意味着在一次仅有一个线程能够更改Hashtable。就是说任何线程要更新Hashtable时要首先获得同步锁,其它线程要等到同步锁被释放之后才能再次获得同步锁更新Hashtable。

  • Fail-safe和iterator迭代器相关。如果某个集合对象创建了Iterator或者ListIterator,然后其它的线程试图“结构上”更改集合对象,将会抛出ConcurrentModificationException异常。但其它线程可以通过set()方法更改集合对象是允许的,因为这并没有从“结构上”更改集合。但是假如已经从结构上进行了更改,再调用set()方法,将会抛出IllegalArgumentException异常。

  • 结构上的更改指的是删除或者插入一个元素,这样会影响到map的结构。

本文转载自:http://www.importnew.com/7010.html

leiline
粉丝 5
博文 49
码字总数 11653
作品 0
烟台
私信 提问
加载中

评论(0)

HashMap和Hashtable的区别

HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问...

LCZ777
2014/03/29
119
0
【JAVA学习】——hashmap和hashtable的区别

HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。 1、HashMap几乎可以等价于Hashtable,除了...

fjj15732621696
2017/10/29
0
0
面试题·HashMap和Hashtable的区别(转载再整理)

原文链接: Javarevisited 翻译: ImportNew.com - 唐小娟译文链接: http://www.importnew.com/7010.html HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用...

osc_foo7glsg
2019/02/25
7
0
hashmap实现原理浅析

看了下JAVA里面有HashMap、Hashtable、HashSet三种hash集合的实现源码,这里总结下,理解错误的地方还望指正 HashMap和Hashtable的区别 HashSet和HashMap、Hashtable的区别 HashMap和Hashtab...

商者
2016/03/30
81
0
java HashMap与Hashtable区别

1.HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)。 2.HashMap是非synchronized,而H...

随性_
2016/05/11
118
0

没有更多内容

加载失败,请刷新页面

加载更多

队列关系图

Joker上上签
今天
24
0
解决LeanCloud流控问题以及配置DaoVoice

最近hexo博客的评论系统valine遇上一点问题,本篇就来记录下我的解决方法。 1 LeanCloud流控问题 如果用valine评论系统的同学最近打开valine部署的日志可能会发现诸如此类的信息。 事实上我在...

胖胖雕
今天
17
0
深源恒际二代信用报告OCR产品入选百度云市场优选商城

本文作者:cloudmarket 近日,深源恒际二代信用报告OCR产品入选百度云市场优选商城,用户可通过百度云市场优选商城入口0元试用相关产品。 百度云市场优选商城是从云市场合作伙伴中精选而出,...

百度开发者中心
昨天
14
0
什么是反射,为什么有用? - What is reflection and why is it useful?

问题: What is reflection, and why is it useful? 什么是反射,为什么有用? I'm particularly interested in Java, but I assume the principles are the same in any language. 我对Jav......

javail
今天
17
0
URL 中文链接 编码错误 完美解决

直接上代码 str = "%25E4%25B8%25AD%25E6%2596%2587";console.log(str);str =decodeURIComponent(decodeURIComponent(str));console.log(str); 输出结果 %25E4%25B8%25AD%25E6%2596%25......

放只虎归个山
今天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部