我有我自己的類,它是一個其中有一組其他對象的對象。 即自己的對象和.equals的Java集合
public class Curve{
@Override
public Collection<CurvePoint> getCurvePoints() {
return curvePoints;
}
@Override
public boolean equals(Object other) {
if (other instanceof Curve) {
Curve otherCurve = (Curve) other;
return getCurvePoints().equals(otherCurve.getCurvePoints());
}
return false;
}
}
其中CurvePoint類implments可比性,也覆蓋,像這樣的equals方法:
public class CurvePoint implements ICurvePoint, Comparable<CurvePoint> {
@Override
public int compareTo(CurvePointother) {
return getSnapDate().compareTo(other.getSnapDate());
}
@Override
public boolean equals(Object other) {
if (other instanceof CurvePoint) {
CurvePointotherPoint = (CurvePoint) other;
return (getId().equals(otherPoint.getId())
&& getBid().getRate() == otherPoint.getBid().getRate()
&& getOffer().getRate() == otherPoint.getOffer().getRate() && getMid()
.getRate() == otherPoint.getMid().getRate());
}
return false;
}
}
我的問題是,當我有曲線的2個集,如何比較這些檢查如果他們平等?當我使用.equals時,它總是返回false,有沒有辦法做到這一點,而不需要循環兩個集合?
沒有。 equals()標準集合的實現總是比較所有的孩子。其他一切都會很糟糕 –