我有一个HashSet<Foo>
。
我有一个对象,
- 等于集合中的一个元素,且
- 具有与实现的同一对象相同的哈希码。
但是,如果我调用hashSet.contains(fooInstance)
,它会返回false
。
真正奇怪的是,以下行返回true
:
new ArrayList<Foo>(hashSet).contains(fooInstance)
不幸的是,找到.contains()
实现的区别比预期的要困难得多。
但我认为我应该是安全的,因为.equals()
和.hashCode()
都可以正常工作。
Foo
的hashCode稳定吗? - Mark Rotteveel