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