比较方法

CompareTo Method

我终于认为我找到了一种使用 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;
}

我建议你选择:

return Double.compare(this.amount, tra.getAmount());

这意味着,您可以避免执行所有这些 if/else if 条件。

这是Student_StransactioncompareTo方法,所以不需要使用吸气剂:

@Override
public int compareTo(Student_Transaction Tra) {
    return Tra != null ? Float.compare(amount, Tra.amount)) : 1;
}

我真的意识到我在上面的线程中所做的就是我的问题的答案,它清楚地定义了我将如何在每笔交易中对我的金额进行排序object这个阶段的最后一步是使用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()
    }
}

我不需要付出额外的努力,你这个孩子只是被误解了他的编程,我非常感谢这个专业程序员社区奉献他们的时间来帮助像我这样的人:)