我最终认为我找到了一种使用if语句按金额对交易进行排序的方法,但是我需要一种方法来指示何时一笔交易小于或大于一笔交易所交换的另一笔交易。
我有到目前为止所做的事的样本,但不太确定我在这里遗漏了什么。
@Override
public int compareTo(Student_Transaction Tra)
{
if (getAmount() == ((Student_Transaction) Tra).getAmount()) {
return Amount - Tra.getAmount();
}
else if (getAmount() > ((Student_Transaction) Tra).getAmount()) {
return 1;
}
else if (getAmount() < ((Student_Transaction) Tra).getAmount()) {
return -1;
}
return Amount;
}
答案 0 :(得分:1)
这是compareTo
的{{1}}方法,因此无需使用吸气剂:
Student_Stransaction
答案 1 :(得分:0)
我建议您选择:
return Double.compare(this.amount, tra.getAmount());
这意味着,您可以避免必须满足所有这些if
/ else if
条件。
答案 2 :(得分:0)
我从字面上意识到,我在上面的线程中所做的就是对我的问题的答案,它清楚地定义了我将如何在每个交易对象中对我的金额进行排序,在此阶段的最后一步是使用collection.sort方法,并在我最近发布的帖子之一是如何完成的答案...
@Override
public int compareTo(Student_Transaction Tra){
if (Tra.getAmount() < getAmount()) {
return -1;
}
else if (Tra.getAmount() == getAmount()) {
return 0;
}
else {
return 1; // Tra.getAmount() > getAmount()
}
}
我并不需要付出更多的努力,一个男孩只是对他的编程有误解,我对这个由专业程序员组成的社区奉献自己的时间来帮助像我这样的人表示感谢: