我試圖重寫可比正是如此:java的實現比較兩個元素
public int compareTo(Object other) {
if(other.getlength() > this.getlength()){
return 1;
} else if (other.getlength() < this.getlength()){
return -1;
} else {
if (other.getVal() > this.getVal()){
return 1;
} else {
return -1;
}
}
}
我希望發生的,是對長度的第一排序列表中,如果長度是一樣的,我希望那些相同的長項目按其價值進行排序(到位)。但是我的實現工作不正常。任何人都可以看到我做錯了什麼?
我的結果是:
a b = 3
a b c = 1
a b c = 1
a b = 2
a b = 1
我想要的結果是:
a b c = 1
a b c = 1
a b = 3
a b = 2
a b = 1
如果長度和Val相同會怎麼樣?你永遠不會返回0. –
我不明白你的問題:(( –
我試過else,在else循環內返回0,即如果other.getVal()== this.getVal()那麼它將返回0,但結果相同 – Neutralise