我需要
Java中的hashCode实现,它忽略了我的类Edge中字段的顺序. Node首先可能是Node第二个,第二个可能是Node第一个.
这是我的方法取决于顺序:
public class Edge {
private Node first, second;
@Override
public int hashCode() {
int hash = 17;
int hashMultiplikator = 79;
hash = hashMultiplikator * hash
+ first.hashCode();
hash = hashMultiplikator * hash
+ second.hashCode();
return hash;
}
}
有没有办法计算一个哈希值,这个哈希值对于以下边缘是相同但唯一的?
Node n1 = new Node("a");
Node n2 = new Node("b");
Edge ab = new Edge(n1,n2);
Edge ba = new Edge(n2,n1);
ab.hashCode()== ba.hashCode()应为true.