gpt4 book ai didi

自己的对象和 .equals 的 Java 集合

转载 作者:行者123 更新时间:2023-12-01 05:40:10 27 4
gpt4 key购买 nike

我有自己的类,它是一个对象,其中包含一组其他对象。即

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 类实现 Comparable 并且还重写 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 个 Curve 集合时,如何比较它们以检查它们是否相等?当我使用 .equals 时,它总是返回 false,有没有办法在不循环两个集合的情况下做到这一点?

最佳答案

如果您要比较集合,那么集合需要有一个可比较的接口(interface),该接口(interface)可以为集合做正确的事情。

基本上这是可能的,但如果当前集合没有按照您喜欢的方式实现比较,您需要对该集合进行子类化并重写方法 compareTo(...)等于(...)

关于自己的对象和 .equals 的 Java 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7390503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com