【发布时间】:2014-04-19 13:22:06
【问题描述】:
我已经为我的班级覆盖了哈希码方法(使用一个名为“id”的实例变量)。
public int hashCode()
{
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
最后一行到底发生了什么?应该有两种不同的情况:
案例1:id == null,表示结果应该等于31。
案例2:id != null ,表示结果应该等于31 + id.hashCode();
我不明白这两种情况(或者我什至不确定它们是否正确)。无论如何,质数的意义是什么?为什么要将空引用分配给 31?
【问题讨论】:
-
books.google.co.in/… 了解哈希码以及为什么只有 31 个的最佳场所。
标签: java overriding primes hashcode