我有一个表示具有唯一Id属性的DB-Entries的类。 可以仅基于此属性
实施equals()
和hashcode()
方法
@Override public int hashCode()
{ return id;
}
@Override public boolean equals(Object obj)
{
if (this == obj) return true;
if (obj == null) return false;
if (getClass() != obj.getClass()) return false;
Task other = (Task) obj;
if (id != other.id)
return false;
return true;
}
答案 0 :(得分:2)
总的来说,是的。如果所有id都是小的连续整数,那么通过使用在可用的32位中更广泛地分布位的函数,可以从大集合中获得更好的性能。但这应该可以找到其他方法。
答案 1 :(得分:1)
我认为这段代码没有任何问题。但是,您可能希望思考一些问题:
id
的对象?答案 2 :(得分:0)
你在评论中说这个课程是最终的,那么我会建议像Integer.equals中的equals design
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}