Hashset的实现原理:
Hashset底部是哈希表支持的,存取速度快
往hashset添加元素的时候,Hashset会先调用元素的HashCode方法得到元素的哈希值,然后通过元素的哈希值经过移位等运算,就可以算出该元素在哈希表中的位置。
算出存储位置之后,分两种情况:
第一种情况:如果算出元素的存储位置目前没有任何元素存储·那么该元素可以直接存储到该位置上。
第二种情况:如果算出该元素的存储位置目前已经存在有其他元素了,那么会调用该元素的equals方法与该位置上的元素进行比较,如果equals返回的是true,那么该元素与这个位置上的元素就视为重复元素,不允许添加,如果equals返回的是false,那么该元素进行添加。