它们两个有什么区别?一直困惑我好久了,API看过研究过,人也问过,难道我太苯了,总是理解不了~
大家伙儿人多见识多,能不能举个例子,容易理解的那种

解决方案 »

  1.   

    hashmap不支持线程同步,所以单线程下比hashtable效率高。别的没了
      

  2.   

    HashMap是线程不安全的, 而Hashtable是线程安全的, 这种区别主要是在多线程的程序中才会体现出来.
    相似的容器还有:Vector线程安全的
    ArrayList, LinkedList线程不安全的.
      

  3.   

    相同点: 都属于Map接口的类,实现了将惟一键映射到特定的值上不同点:
    1: .历史原因: Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现
    2.    同步性: Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的, 所以Hashtable 比 HashMap 慢,因为它是同步的.
    3. Hahtable 类似于 HashMap,但是不允许 null 键和 null 值。HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值.    只有HashMap可以让你将空值作为一个条目的key或value.这种东西google一下能找到很多解释的
      

  4.   

    Vector, Stack, Hashtable这几个都是java 1.0/1.1遗留类,记住一条:能不用尽量不用就行了。
      

  5.   

    补充一点 HashMap把HashTable容易引起歧义的contains方法去掉了
    除了两者都有containsKey containsValue方法外 HashTable还有个contains方法
      

  6.   

    简单的回答如下:hashmap 线程不安全
    hashtable 线程安全