java - 提高HashSet的速度

原文 标签 java collections hashset

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

我想知道此HashSet如何识别重复项。 toString功能已被覆盖。还有什么其他功能或我应该重写的东西可以帮助加速HashSet功能吗?

哈希函数重写会有所帮助吗?

最佳答案

您应该覆盖hashCodeequals方法。这些是用于在HashSet / HashMap中定位键的方法。

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

相关文章:

java - 如何添加到类类型的数组列表

java - 如何在Java中转换要设置的 map 并添加要设置的 map 的所有元素?

java - Collection.sort()基于第一顺序的第二次排序

facebook - 如何通过Open Graph发布“观看”或“想要观看”的电影?

java - Java如何快速比较两个集合在Java中完全相同?

java - java.util.prefs.Preferences如何在Java中工作?

java - 打包名称中的Sinch Sample Apps错误

java - 计算大型长数组中的不同值(性能问题)

java - 计算Arraylist中的书数

java - 无法完成Gradle执行:原因