向HashSet集合中加入元素的执行流程:
1.在向集合中加入该对象A之前,
首先调用对象A的hashCode()方法,得到该对象的哈希值。
2.把该对象的哈希值放入哈希表中,然后,在集合中存储该对象
3.当再向集合中加入另一个对象B时,也是先调用对象A的hashCode()方法,得到该对象的哈希值。
拿着这个哈希值,到哈希表中去查找,看看这个哈希值是否已经有了,
如果两个对象的哈希值重复了,就会执行3
4.调用对象B的equals()方法去和对象A比较,
如果比较的结果是真,就放弃存储对象B.因为HashSet中
不允许出现完全相同的元素。
如果比较结果为假,则,在哈希表中对象A的哈希值处,顺延,并在内存中
存储对象B.
|
|