私はこのクラスを持っています...
public class StartStopTouple {
public int iStart;
public int iStop;
public int iHashCode;
public StartStopTouple(String start, String stop) {
this.iStart = Integer.parseInt(start);
this.iStop = Integer.parseInt(stop);
}
@Override
public boolean equals(Object theObject) {
// check if 'theObject' is null
if (theObject == null) {
return false;
}
// check if 'theObject' is a reference to 'this' StartStopTouple... essentially they are the same Object
if (this == theObject) {
return true;
}
// check if 'theObject' is of the correct type as 'this' StartStopTouple
if (!(theObject instanceof StartStopTouple)) {
return false;
}
// cast 'theObject' to the correct type: StartStopTouple
StartStopTouple theSST = (StartStopTouple) theObject;
// check if the (start,stop) pairs match, then the 'theObject' is equal to 'this' Object
if (this.iStart == theSST.iStart && this.iStop == theSST.iStop) {
return true;
} else {
return false;
}
} // equal() end
@Override
public int hashCode() {
return iHashCode;
}
}
...そして、あるオブジェクトが他のオブジェクトと等しい場合にのみ、そのようなオブジェクト間の同等性をiStart
定義しiStop
ます。iStart
iStop
をオーバーライドしたのでequals()
、オーバーライドする必要がありますhashCode()
が、このクラスに適切なハッシュ関数を定義する方法がわかりません。iStart
andを使用してこのクラスのハッシュ コードを作成するには、どのような方法がよいでしょうiStop
か?