使用string属性覆盖hashCode函数

l0n*_*g3r 1 java string hashcode

在下面的代码中,我想使用"term"属性来生成哈希码.如何使用此String属性生成哈希代码?

class Term {
    String term;
    @Override
    public boolean equals(Object o) {
        if (o instanceof Term) {
            return this.term.equals(((Term)o).term);
        }
        return false;
    }
    @Override
    public int hashCode() {
    }
}
Run Code Online (Sandbox Code Playgroud)

Roh*_*ain 6

只需使用String#hashCode()null检查的方法.那就足够了:

@Override
public int hashCode() {
    int prime = 31;
    return prime + (term == null ? 0 : term.hashCode());    
}
Run Code Online (Sandbox Code Playgroud)

您还应该修改equals()方法以便事先进行null检查this.term.

  • +1但是小修复 - 应该检查null. (2认同)