В некоторой степени запутался с поведением Java CompareTo () и Collections.sort ().
Я должен отсортировать столбец в порядке возрастания с помощью compareTo () & Collections.sort ().
Мой критерий (если встречается тот же номер, что и в следующем столбце).
(1) Номер документа (2) Дата проводки (3) Дата транзакции (4) Сравнение ссылочных номеров транзакций
Вот код (который выполняется в вызывающем методе), который реализует метод Collection.sort ():
public int compareTo(CreditCardTransactionDetail t) {
int comparison = 0;
int documentNumberComparison = this.getDocumentNumber().compareTo(t.getDocumentNumber());
if (documentNumberComparison != 0) {
comparison = documentNumberComparison;
}
else {
int postingDateComparison = this.getTransactionPostingDate().compareTo(t.getTransactionPostingDate());
if (postingDateComparison != 0) {
comparison = postingDateComparison;
}
else {
int transactionDateComparison = this.getTransactionDate().compareTo(t.getTransactionDate());
if (transactionDateComparison != 0) {
comparison = transactionDateComparison;
}
else {
int transactionRefNumberComparison = this.getTransactionReferenceNumber().compareTo(t.getTransactionReferenceNumber());
LOG.info("\n\n\t\ttransactionRefNumberComparison = " + transactionRefNumberComparison + "\n\n");
if (transactionRefNumberComparison != 0) {
comparison = transactionRefNumberComparison;
}
}
}
return comparison;
}
Вопрос (ы):
(1) AmЯ правильно делаю?Когда сравнение = 0, оно возвращается как -2.Это правильное поведение, потому что я всегда думал, что оно между -1,0,1.
(2) Должен ли я использовать компаратор?
Счастливое программирование ...