基本介绍:

  1. 存放的元素是键值对:K-V
  2. hashtable的键和值都不能为null,否则会抛出NullPointerException
  3. hashtable使用方法基本上和HashMap一样
  4. ashtable是线程安全的(synchronized),hashMap是线程不安全的

Hashtable底层结构

  1. 底层有数组Hashtable$Entry[],初始化大小为11
  2. 临界值threshold 8 = 11 * 0.75
  3. 扩容:按照自己的扩容机制来进行即可
  4. 执行方法 addEntry(hash, key, value, index); 添加K-V封装到Entry
  5. 当 if (count >= theshold) 满足时,就进行扩容
  6. 按照 int newCapacity = (oldcapacity << 1) + 1; 的大小扩容

Hashtalbe和HashMap对比

image.png