字符串变量的哈希码唯一性

时间:2014-09-15 01:44:10

标签: java string hashcode

在我的Event类中,它有一个name变量作为String,我希望name是对象的唯一标识符。在实施hashCode()方法时,建议采用哪种方式或正确?

@Override
public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((name == null) ? 0 : name.hashCode());
    return result;
}

@Override
public int hashCode() {
    return name != null ? name.hashCode() : 0;
} 

2 个答案:

答案 0 :(得分:3)

您也可以使用默认的Java hashCode,因为它适用于大多数用途。不要过于复杂:第二个更简单的功能可以正常工作。

答案 1 :(得分:1)

多个属性(可能是各种类型)时,第一个是模板,但如果您只有String String上定义的默认hashCode() (继承自Object)会很好。