提高HashSet的速度

时间:2014-11-11 06:20:19

标签: java collections hashset

我有一个从DB获取的具有唯一标识符(id)的对象列表。对于特定场景,我必须删除重复项。为此,我将其存储在HashSet中。但是,这个过程需要一些时间。

我想知道这个HashSet如何识别重复项。 toString函数已被覆盖。是否有任何其他功能或其他东西我应该覆盖以帮助加速HashSet功能?

哈希函数覆盖会有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

您应该重写hashCodeequals方法。这些是用于在HashSet / HashMap中找到密钥的方法。

HashSet首先计算要搜索的对象的hashCode,然后迭代HashSet中共享此hashCode的所有对象,从而识别重复项并使用equals将它们与搜索到的对象进行比较,直到找到匹配为止。