我需要一个hashCode
Java 实现,它忽略我的类中字段的顺序Edge
。Node first 可能是 Node second,第二个可能是 Node first。
这是我的方法取决于顺序:
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
。