我已经找到了一些有关使用多个字段对对象列表进行排序的结果,但是我不明白如何使用可比的两个字段按升序和降序对列表进行排序这是我的代码,我想对列表进行排序按降序排列(datejournal),然后按升序排列codejournal
public class journal implements Comparable<journal>{
private String codeJournal;
private String dateLivraison;
private int qteJournal;
public String getCodeJournal() {
return codeJournal;
}
public void setCodeJournal(String codeJournal) {
this.codeJournal = codeJournal;
}
public String getDateLivraison() {
return dateLivraison;
}
public void setDateLivraison(String dateLivraison) {
this.dateLivraison = dateLivraison;
}
public int getQteJournal() {
return qteJournal;
}
public void setQteJournal(int qteJournal) {
this.qteJournal = qteJournal;
}
@Override
public String toString() {
return "journal [codeJournal=" + codeJournal + ", dateLivraison=" + dateLivraison + ", qteJournal=" + qteJournal
+ "]";
}
@Override
public int compareTo(journal arg0) {
if(this.dateLivraison.equals(arg0.getDateLivraison())){
return -this.dateLivraison.compareTo(arg0.getDateLivraison());
}
}
}
答案 0 :(得分:0)
您可以按如下所示比较第一个DateJournal(按降序)和之后的CodeJournal(按升序):
@Override
public int compare(final journal j1, final journal j2) {
int res;
res = j2.getDateLivraison().compareTo(j1.getDateLivraison());
if (res == 0)
res = j1.getCodeJournal().compareTo(j2.getCodeJournal());
return res;
}