我试图重写可比正是如此: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