从多个字段生成hashCode?

时间:2013-05-29 22:08:04

标签: java hash hashcode

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

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

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

我应该将他们的hashCodes加在一起吗?加他们?将它们与素数相乘?

1 个答案:

答案 0 :(得分:7)

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

public int hashCode() {
    return 31 * from.hashCode() + to.hashCode();
}