我们向HashSet中添加元素a,首先调用a所在类的hashCode(),计算a的哈希值,此哈希值接着通过某种算法算出在HashSet数组中的存放位置(即为索引位置),判断数组此位置上是否已有元素:

  1. 若无元素,则 a 添加成功。
  2. 若有元素(或以链表形式存在的多个元素),则比较 abhash 值:
    1. 若不相同,则 a 添加成功。
    2. 若相同,则调用 a 所在类的 equals()
      1. 返回 truea添加失败。
      2. 返回 falsea添加成功。