【发布时间】:2012-03-24 00:15:45
【问题描述】:
我知道 HashSet.contains() 方法使用 .equals 方法来检查相等性,因为它检查指针以查看它们是否相等。
我需要它来检查指针处的实际对象是否相等 - 在我的特定情况下,我需要查看 HashSet 中是否已经存在正在打开的“节点”(一个 int[] 数组)。这对我的搜索算法至关重要,这样我的双向迭代深化搜索的实现就不会那么幼稚了。
如果可能,我仍然希望线性搜索时间,或者我应该使用不同的类?
感谢您的帮助。
【问题讨论】:
-
抱歉,如果它已经在哈希集中,为什么不直接 get() 呢?如果哈希集不是太满,这将是 O(1)
-
@j13r:OP 想要使用
contains(),它使用equals()进行检查。 -
据我所知,Java HashSets 没有 .get()