400-700-1307

【Java面试题】绘制Java集合框架并分析HashMap和H

2019-01-29 13:47

绘制Java集合框架并分析HashMap和Hashtable的区别?
答案:
 

HashMap和Hashtable都实现了Map接口。主要区别可以从线程安全性,同步(synchronization),以及速度三个方面来进行比较。

 

    <1>HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可

以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不

)。

    <2>HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable

是线程安全的,多个线程可以共享一个Hashtable;而如果没有正确的同步的话,多个线程是不能共享HashMap的。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。

    <3>Hashtable是线程安全的也是synchronized,所以在单线程环境下它比HashMap要

慢。如果你不需要同步,只需要单一线程,那么使用HashMap性能要好过Hashtable。

开班信息

当前校区

北京校区
  • 北京校区
  • 上海校区
  • 广州校区
  • 沈阳校区
  • 杭州校区
  • 南京校区
  • 郑州校区
  • 成都校区
  • 深圳校区
  • 西安校区
  • 苏州校区
  • 深圳沙井
  • 深圳观澜
  • 深圳龙岗
  • 武汉校区
  • 西宁校区
  • 石家庄校区
  • 湖北咸宁
  • 广东惠州
  • 广东佛山

                    Copyright © 2007-2019 IT兄弟连教育 版权所有 京ICP备11018177号  京公网安备 11010802026987号