【发布时间】:2019-07-21 05:05:03
【问题描述】:
我创建了一个名为 Coordinate 的类,如下所示:
public class Coordinate {
public int x;
public int y;
public Coordinate(int x, int y) {
this.x = x;
this.y = y;
}
@Override
public boolean equals(Object obj) {
Coordinate coordinate = (Coordinate)obj;
return (coordinate.x == this.x && coordinate.y == this.y);
}
}
我有两个集合(A 和 B),用 Coordinate 类的实例填充。我想测试我的两个集合是否包含满足 .equals() 的坐标实例。例如:
Coordinate a = new Coordinate(2, 2);
Coordinate b = new Coordinate(2, 2);
A.add(a);
B.add(b);
尽管 a.equals(b) 和 b.equals(a) 的计算结果都为真,但 a 和 b 是不同的实例(因此分配到不同的内存位置),因此比较集合 A 和我遇到的 B 会将它们评估为不同的集合。
有没有办法根据集合的内容是否满足 .equals() 来评估集合是否相等?
【问题讨论】: