Hashtable和Hashmap的区别?

1、实现的继承的父类不同

   Hashtable继承Dictionary类

     HashMap继承abstractMap类

  两个类都实现了Map接口

 

2、线程安全性不同  

    Hashmap线程是不安全的

    Hashtable线程是安全的

3、效率不同

    Hashmap效率高

    Hashtable效率低

 

4、key和value是否允许为null值

    Hashmap允许key和value为null值

    Hashtable不允许key和value为null值

 

5、扩容方式不同

     HashTable在不指定容量的情况下的默认容量为11,而HashMap为16,Hashtable不要求底层数组的容量一定要为2的整数次幂,而HashMap则要求一定为2的整数次幂。
          Hashtable扩容时,将容量变为原来的2倍加1,而HashMap扩容时,将容量变为原来的2倍。

        Hashtable和HashMap它们两个内部实现方式的数组的初始大小和扩容的方式。HashTable中hash数组默认大小是11,增加的方式是 old*2+1。

posted @ 2019-07-05 15:22  鳄鱼菌  阅读(150)  评论(0编辑  收藏  举报