我有一个从数据库获取的具有唯一标识符(id)的对象列表。对于特定场景,我必须删除重复项。为此,我将其存储在 HashSet
中。然而,这个过程需要一些时间。
我想知道这个HashSet
如何识别重复项。 toString
函数已被重写。是否有任何其他函数或我应该重写的东西来帮助加速 HashSet
函数?
哈希函数覆盖有什么帮助吗?
最佳答案
您应该重写 hashCode
和 equals
方法。这些是用于在 HashSet
/HashMap
中定位键的方法。
HashSet
通过首先计算其正在搜索的对象的 hashCode
,然后迭代 HashSet
中的所有对象来识别重复项> 共享此 hashCode
并使用 equals
将它们与搜索到的对象进行比较,直到找到匹配项。
关于java - 提高HashSet的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26858797/