HashMap和HashTable区别

1.同步问题

HashMap它不是线程安全的 。
HashTable是线程安全的 他给每个方法上都加了synchronize关键字 所以效率会比较低

HashMap和HashTable区别

2.继承的父类不同

HashMap继承的父类是 AbstractMap
HashTable继承的父类是 Dictinary

HashMap和HashTable区别

3.键值区别

HashMap 他的key和value都可以是null值;
而HashTable的 key和value不能为空值,空值,直接就抛除异常了

左边是HashMap 右边是HashTable

HashMap和HashTable区别

HashMap和HashTable区别

4.初始容量和初始化方式不同

HashTable的初始容量是11 ,HashTable他是在调用构造方式的时候进行初始化的, HashMap的初始容量是16 ,在put的时候他才会进行初始化

HashMap:
HashMap和HashTable区别

HashTable:

HashMap和HashTable区别

HashMap扩容的时候是扩容了2倍 new Cap 就是容量的意思

HashMap和HashTable区别

HashTable扩容的时候是扩容了2倍+1

HashMap和HashTable区别

5. 计算hash值的方式不同

HashMap:

HashMap和HashTable区别

HashTable:

HashMap和HashTable区别

上一篇:“68道 Redis+168道 MySQL”精品面试题(带解析),你背废了吗?


下一篇:AtCoder Beginner Contest 168