HashMap和HashTable的区别

By | 2022年1月27日

What are the differences between a HashMap and a Hashtable ?

  • HashTable是同步的,HashMap不是。由于通常意义上来讲不加同步锁的效率要高于加了锁的,因此在不要求多线程安全的情况下选择HashMap是比较好的
  • HashTable不允许键或者值中存在null,HashMap则允许一个为nullkey,value则不限制null的数量
  • 对于HashMap来讲,有一个子类是LinkedHashMap,这个是一个有序的数据结果,因此在后续代码中如果要求排序,那么HashMap要比HashTable转换来的容易的多

总的来说,如果不要求线程安全,则用HashMap,即是要求线程安全,那么选择ConcurrentHashMap也是一种更好的选择。HashTable则尽量不使用,效率不够好,这是一个历史遗留的对象