我有一个HashSet<Foo>
. 我有一个对象是
- 等于集合的一个元素,并且
- 具有与实现的同一对象匹配的哈希码。
如果我称之为hashSet.contains(fooInstance)
返回false
。
真正奇怪的是以下行返回true
:
new ArrayList<Foo>(hashSet).contains(fooInstance)
可悲的是,要找出实施的差异到底在哪里,结果比预期的要难.contains()
。但我认为我会很安全,因为.equals()
并且.hashCode()
工作正常。