Метод сравнения - PullRequest
       11

Метод сравнения

0 голосов
/ 17 декабря 2018

Я, наконец, думаю, что нашел способ отсортировать свои транзакции по сумме с помощью оператора 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;
}

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

Это compareTo метод Student_Stransaction, поэтому нет необходимости использовать геттеры:

@Override
public int compareTo(Student_Transaction Tra) {
    return Tra != null ? Float.compare(amount, Tra.amount)) : 1;
}
0 голосов
/ 15 января 2019

Я буквально понял, что то, что я сделал в приведенной выше ветке, было ответом на мой вопрос, он четко определил, как я буду сортировать свои суммы в каждом объекте транзакции, и в итоге на этом этапе я использовал метод 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()
    }
}

Мне не нужно было делать лишнюю милю, я просто неправильно понял его программирование, и яЯ высоко ценю то, что это сообщество профессиональных программистов посвящает свое время тому, чтобы помогать таким людям, как я :)

0 голосов
/ 17 декабря 2018

Я бы посоветовал вам перейти с:

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

, что означает, что вы можете избежать выполнения всех этих if / else if условий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...