9.3-HashMap简单概述

  1. HashMap 底层是⼀个数组

2.数组中每个元素是⼀个单向链表(即,采⽤拉链法解决哈希冲突)

  • 单链表的节点每个节点是 Node<K, V> 类型(见下源码)

3.同⼀个单链表中所有 Node 的 hash值不⼀定⼀样,但是他们对应的数组下标⼀定⼀样

  • 数组下标利⽤哈希函数/哈希算法根据 hash值计算得到的

4.HashMap 是数组和单链表的结合体

  • 数组查询效率⾼,但是增删元素效率较低
  • 单链表在随机增删元素⽅⾯效率较⾼,但是查询效率较低
  • HashMap 将⼆者结合起来,充分它们各⾃的优点

5.HashMap 特点

  • ⽆序、不可重复
  • ⽆序:因为不⼀定挂在那个单链表上了

6.为什么不可重复?

  • 通过重写 equals ⽅法保证的