所以,我有一個包含兩個數字的類,更準確地說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
提交
取消