6

如何从班级中的两个字段生成 hashCode?

例如,我希望Pair具有相同对象 V 的类具有相同的 hashCode:

public class Pair<V> {
    V from, to;
}

我应该将他们的哈希码相乘吗?添加它们?将它们与素数相乘?

4

1 回答 1

12

一种方法是将第一个字段的哈希码添加到第二个字段的哈希码,乘以一个小的素数,如下所示:

public int hashCode() {
    return 31 * from.hashCode() + to.hashCode();
}
于 2013-05-29T22:10:42.360 回答