类似类的Java hashCode

时间:2017-02-19 17:33:23

标签: java hashcode

我有两个相似的类,每个类都有一个相同类型的单个字段。

class Fruit {
    private final String name;
}

class Vegetable {
    private final String name;
}

我想为每个人实施hashCode()。我的问题是,在我的情况下,名称之间的冲突比使用" apple"更有可能。和"胡萝卜,"它们可能都在同一个Map / Set中。我想知道实现hashCode最清晰的方法来处理这个问题。

到目前为止,我已经考虑过Objects.hash(this.getClass(), name)Objects.hash(<some int unique to this class>, name)。我喜欢第一个只是因为它比第二个更自我记录和强大,但它不是我在野外看到的模式。我也考虑过<some prime int unique to this class> * Objects.hashCode(name),但这感觉很脆弱,特别是如果添加了新的字段。

0 个答案:

没有答案