java - 提高HashSet的速度

标签 java collections hashset

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

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

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

最佳答案

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

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

关于java - 提高HashSet的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26858797/

相关文章:

java - 在网页上播放音频流

java - 根据值列表中最旧的值对 TreeMap 中的键进行排序?

java - Java 5 之前的集合和不愿意改变

java - 有没有更简单的方法从对象集合中收集字符串?

java - 设置等效于 WeakHashMap?

.net - 两组 Int32 - 计算交点的最快方法

java - 插入错误 Java ArrayIndex 越界

java - svn 分支(删除了 .svn 文件夹)

java - Map[] myArr,每个都有 <K>Integer、<V>HashSet ...无法获取 HashSet (Java)

java - 如何在不编码的情况下验证 JAXB 2.0 中的模式?