HashMap和Hashtable的区别
博客专区 > xpttxsok 的博客 > 博客详情
HashMap和Hashtable的区别
xpttxsok 发表于2年前
HashMap和Hashtable的区别
  • 发表于 2年前
  • 阅读 24
  • 收藏 1
  • 点赞 0
  • 评论 0

移动开发云端新模式探索实践 >>>   

摘要: HashMap和Hashtable的区别
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);

 

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 5
博文 167
码字总数 98780
×
xpttxsok
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: