首页 > 代码库 > 图解:Set检查是否为重复对象的策略

图解:Set检查是否为重复对象的策略

反思:为什么要先通过先检索hashcode是否相等呢?

查看Hashset的底层源代码:它其实是调用HashMap,而HashMap底层是通过数组维护数据,你想想,如果你的数据是1000万条,每次添加了的时候,你都和所有的元素进行比较,那为了维护不重复,你插入的成本得有多高!!!!太可怕了,!!所以通过引入Hashcode,转换一下,把它作为下标,然后在检查一下这里面存的元素是否想等,用equals比较。下面这段话,如果你暂时看不懂没有关系,我也是自己写了一个Hash表,在查看HashMap,我才明白它底层的实现机制。大家只要记住这个图就行了。