Guava Sets intersection(HashSet1, HashSet2) 按散列还是按值比较?

Guava Sets intersection(HashSet1, HashSet2) compares by hash or by value?

使用Guava Sets求两个HashSet的交集时,如何判断两个元素相同?按它们的值还是按它们的哈希值?

==更新==

查看java.util.HashSet的源码,发现contains()实际上调用了containsKey()来进行比较:

哈希值从来没有被用来确定相等性。那不是他们的目标。在基于散列的集合中,他们的目标是减少可能相等的候选人的数量。

intersection() returns 两个集合的视图,因此它将相等性测试完全委托给下面的两个集合。