创建哈希码() 方法 - Java
我在为我创建的类编写方法时遇到了一些麻烦。此类旨在用于树集,因此,它实现了可比性。该类具有以下变量:hashCode()
public class Node implements Comparable<Node> {
Matrix matrix;
int[] coordinates= new int[2];
Node father;
int depth;
int cost;
下面是该方法的实现。我希望按成本组织这些 Node 结构,因此,返回简单减法的结果。compareTo()
TreeSet
compareTo()
public int compareTo(Node nodeToCompare) {
return this.cost - nodeToCompare.cost;
}
我还实现了一个方法。equals()
public boolean equals(Object objectToCompare) {
if(objectToCompare== this) {return true;}
if(objectToCompare== null || objectToCompare.getClass()!= this.getClass()) {return false;}
Node objectNode= (Node) objectToCompare;
return this.father.equals(objectNode.father) &&
this.depth== objectNode.depth &&
this.cost== objectNode.cost &&
this.matrix.equals(objectNode.matrix) &&
Arrays.equals(this.coordinates, objectNode.coordinates);
}
说了这么多,我有几个问题:
- 既然我实现了一个新方法,我应该实现一个新方法吗?
equals()
hashCode()
- 如何使用这些变量实现新的哈希码?(请注意,Matrix类型的变量矩阵已经实现了一个方法)
method()
hashCode()
就这样!