哈希码实现

Man*_*lva 0 java

关于这个问题(高效的hashCode()实现)我还有一个问题.

我有一个"值"类,实例持久存储在数据库中.因此,该类的实例都具有唯一的ID.

因此,我只需返回此id即可实现哈希码方法(以及相关的equals方法).

当使用Eclipse哈希码生成器并告诉Eclipse仅使用ID属性进行生成时,我有以下方法:

    @Override
    public int hashCode() {
            final int prime = 31;
            int result = 1;
            result = prime * result + id;
            return result;
    }
Run Code Online (Sandbox Code Playgroud)

我认为简单地返回id更有效率,因为我知道这个id是唯一的.我对吗 ?

提前致谢

Jon*_*eet 5

这不是ID的唯一性,这使得这是正确的事情 - 事实是,它用于相等性检查,它是唯一用于等式检查的东西.

Eclipse中的样板实际上仅在您使用多个字段进行相等时才相关.