如何为网格上的点实现哈希函数

时间:2014-01-25 21:22:18

标签: java hash

我需要一个哈希函数来覆盖对象类中的hashCode()方法。

我有一个Point类,它代表坐标网格上的一个点。实例变量是double x,y;

我也有方法

public int getX(){
 return Math.round(x);
}

public int getY(){
   Math.round(y);
}

如何创建一个返回整数的哈希函数? 简单地说就是

return Math.round(getX()/getY());

工作?

1 个答案:

答案 0 :(得分:1)

您的IDE很可能有一个实用程序来生成哈希代码并且等于您,查看源代码或插入代码菜单。

您需要做的只是return getX()+31*getY();

有关哈希码理论的详细讨论,请参阅此问题和答案:

Best implementation for hashCode method