HashMap与Hashtable主要区别

  1. Hashtable的方法加了syncronized锁,线程安全但效率低。
  2. Hashtable没有链表转红黑树的进化退化逻辑。
  3. Hashtable不允许key value为null。
  4. 默认capacity容量及扩容逻辑不同,Hashtable默认11,扩容2n+1;HashMap默认16,扩容2n。(默认加载因子都是0.75)
  5. 计算数组位置算法不同,Hashtable 是hashCode与长度取模,HashMap是hashCode高低16位异或与长度-1取与。取模比位运算慢。
  6. Hashtable不遵守驼峰命名规范。
  7. HashMap很常用,Hashtable不常用,一般会用ConcurrentHashMap。
上一篇:HashTable、HashSet和Dictionary的区别


下一篇:HashTable、HashMap、ConcurrentHashMap源码分析