所以,我有一個(gè)包含兩個(gè)數(shù)字的類,更準(zhǔn)確地說(shuō)X是 和Z。我將其存儲(chǔ)在TreeMap需要關(guān)鍵類實(shí)現(xiàn)的上Comparable。問(wèn)題是,我如何將X和Z與方法上的其他類進(jìn)行比較compareTo()?我已經(jīng)嘗試將兩個(gè)類的X和整數(shù)相加并將它們與 進(jìn)行比較,但這不是一個(gè)好的解決方案,因?yàn)槿绻袚Q和,它將以相同的結(jié)果結(jié)束。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貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
解決方法:
@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;
}
添加回答
舉報(bào)
0/150
提交
取消