我有一个从DB获取的具有唯一标识符(id)的对象列表。对于特定场景,我必须删除重复项。为此,我将其存储在HashSet
中。但是,这个过程需要一些时间。
我想知道这个HashSet
如何识别重复项。 toString
函数已被覆盖。是否有任何其他功能或其他东西我应该覆盖以帮助加速HashSet
功能?
哈希函数覆盖会有什么帮助吗?
答案 0 :(得分:2)
您应该重写hashCode
和equals
方法。这些是用于在HashSet
/ HashMap
中找到密钥的方法。
HashSet
首先计算要搜索的对象的hashCode
,然后迭代HashSet
中共享此hashCode
的所有对象,从而识别重复项并使用equals
将它们与搜索到的对象进行比较,直到找到匹配为止。