文档章节

HashMap和Hashtable的区别

xpttxsok
 xpttxsok
发布于 2016/07/14 20:37
字数 276
阅读 27
收藏 1
HashTable是一个过时的集合类,在java4中呗重写了,实现了Map接口,所以也成了集合的一部分
     HashTable和HashMap的主要区别是线程安全和性,同步,以及速度
      
     1.HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行
     2.HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable是线程安全的,多个线程可以共享一个Hashtable
       Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。
     3.由于Hashtable是线程安全的也是synchronized,所以在单线程环境下它比HashMap要慢。
     4.HashMap不能保证随着时间的推移Map中的元素次序是不变的。
    
     注意:
         1. sychronized意味着在一次仅有一个线程能够更改Hashtable。就是说任何线程要更新Hashtable时要首先获得同步锁,
          其它线程要等到同步锁被释放之后才能再次获得同步锁更新Hashtable。
         
         2. HashMap可以通过下面的语句进行同步:
         Map m = Collections.synchronizeMap(hashMap);

 

© 著作权归作者所有

共有 人打赏支持
上一篇: git
下一篇: 项目
xpttxsok
粉丝 7
博文 180
码字总数 106882
作品 0
徐汇
程序员
私信 提问

暂无文章

Spring AOP 实现方法日志记录以及执行时间打印

注意:proxy-target-class="true" 这是决定是走jdk代理还是spring cglib代理的。高版本的(貌似)可以忽略。 1.在spring 相关配置文件中假如如下配置: <!-- 日志时间打印 --> <aop:config ...

轻量级赤影
14分钟前
1
0
使用应用程序(Java/Python)访问MaxCompute Lightning进行数据开发

MaxCompute Lightning是MaxCompute产品的交互式查询服务,支持以PostgreSQL协议及语法连接访问Maxcompute项目,让您使用熟悉的工具以标准 SQL查询分析MaxCompute项目中的数据,快速获取查询结...

阿里云官方博客
14分钟前
1
0
SVN chechout failed: xxx is not valid as filename in directory svn检出错误

SVN chechout failed: xxx is not valid as filename in directory svn检出错误 2018年05月29日 09:49:59 SieSteven 阅读数:820 版权声明:转载请注明出处,最好发邮件告知。谢谢 https://...

linjin200
16分钟前
1
0
QGIS for Android 开发:五、qgis for android demo编写

https://github.com/lutraconsulting/qgis-quick-demo-apphttps://github.com/yinyinnie/breakpad-for-androidhttps://github.com/google/breakpad.githttps://github.com/zhengtianzu......

洋碱
18分钟前
1
0
在DataWorks中实现指定UDF只能被指定账户访问

背景 之前写过一篇文章是关于“DataWorks和MaxCompute内部权限体系的区别”有兴趣的朋友可以点击阅读查看详情。但是还是有些同学会问,我如何在DataWorks中实现我的具体某个Resource,Table...

zhaowei121
20分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部