所以,我有一个包含两个数字的类,更准确地说X是 和Z。我将其存储在TreeMap需要关键类实现的上Comparable。问题是,我如何将X和Z与方法上的其他类进行比较compareTo()?我已经尝试将两个类的X和整数相加并将它们与 进行比较,但这不是一个好的解决方案,因为如果切换和,它将以相同的结果结束。ZInteger.compare()XZpublic class Position2D implements Comparable<Position2D> { private int x, z; @Override public int compareTo(Position2D position2D) { int coordinatesSum = this.getX() + this.getZ(); int otherCoordinatesSum = position2D.getX() + position2D.getZ(); return Integer.compare(coordinatesSum, otherCoordinatesSum); }}
1 回答
慕莱坞森
TA贡献1810条经验 获得超4个赞
解决方法:
@Override
public int compareTo(@Nonnull Position2D position2D) {
int xComparison = Integer.compare(this.getX(), position2D.getX());
int zComparison = Integer.compare(this.getZ(), position2D.getZ());
return xComparison != 0 ? xComparison : zComparison;
}
添加回答
举报
0/150
提交
取消