当把对象存入HashSet时,先会获取对象的hashCode值,与已经存入HashSet对象的hashCode值比较。hashCode值不相同,则正常添加。
如果hashCode值相同则调用equals(),equals比较不相同正常添加。
equals比较内容相同则不允许添加成功
这样可以减少equals的调用频率,提高效率
HashSet在存储对象时,首先依据对象的hashCode值进行判断,不同则直接添加,相同则进一步使用equals方法比较。如果equals返回false,对象仍能添加,若返回true,则不允许重复添加,以保证集合的唯一性,这种机制优化了equals的调用,提高了性能。
这样可以减少equals的调用频率,提高效率

被折叠的 条评论
为什么被折叠?