Set添加元素的过程(HashSet为例)
我们向HashSet中添加元素a,首先调用a所在类的hashCode(),计算a的哈希值,此哈希值接着通过某种算法算出在HashSet数组中的存放位置(即为索引位置),判断数组此位置上是否已有元素:
- 若无元素,则
a添加成功。 - 若有元素(或以链表形式存在的多个元素),则比较
a与b的hash值:- 若不相同,则
a添加成功。 - 若相同,则调用
a所在类的equals(),- 返回
true,a添加失败。 - 返回
false,a添加成功。
- 返回
- 若不相同,则

浙公网安备 33010602011771号