文档章节

HashMap和Hashtable的区别

xpttxsok
 xpttxsok
发布于 2016/07/14 20:37
字数 276
阅读 27
收藏 1

精选30+云产品,助力企业轻松上云!>>>

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
博文 189
码字总数 110196
作品 0
徐汇
程序员
私信 提问
加载中
请先登录后再评论。

暂无文章

scala crm简单示例

环境:jdk1.8、 scala sdk 2.12.10 、maven 3.5.4 项目目录结构: 代码: CustomerCrm.scala package com.customercrm.appimport com.customercrm.view.CustomerView/** * 启动类 */......

hexiaoming123
1分钟前
0
0
PyCharm 2018 永久激活

  PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外...

osc_2axit9df
3分钟前
0
0
MySQL错误代码:MySQL Workbench中UPDATE期间的1175错误代码

问题: I'm trying to update the column visited to give it the value 1. I use MySQL workbench, and I'm writing the statement in the SQL editor from inside the workbench. 我正在尝......

fyin1314
3分钟前
0
0
PyCharm 2018 永久激活

  PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外...

osc_96wcoyea
3分钟前
0
0
程序人生 | 春风得意马蹄疾,一日看尽长安花

当大潮退去,才知道谁在裸泳。 作者:A哥(YourBatman) 公众号:BAT的乌托邦(ID:BAT-utopia) 文末是否有彩蛋:有 目录 前言 正文 1、贫苦大众 游戏人生 1.1 家徒四壁 呱呱坠地 1.2 被耽误...

osc_7owgvpdx
5分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部