關於實現類按多屬性排序的問題(compareTo()函式應用)
阿新 • • 發佈:2019-02-16
class tongji{
char zi;//字元
int num;//出現次數
}
如上這個類, 按照統計個數由多到少輸出統計結果,如果統計的個數相同,則按照ASII碼由小到大排序輸出。
1.num大的靠前
2.num 相同情況下,判斷字元的ASII碼,小的靠前。
這時就要用到覆寫compareto()於是寫成如下類
public static class tongji implements Comparable<tongji> {
char zi;
int num;
@Override
public int compareTo(tongji o) {
// TODO Auto-generated method stub
if (this.num>o.num) {
return -1;//-1是排在後面
}else if (this.num<o.num) {
return 1;//1是排在前面
}else {
if (this.zi<o.zi) {
return -1;
}else if (this.zi>o.zi) {
return 1;
}else {
return 0;
}
}
}
}
然後再呼叫以下函式,即可實現list排序Collections.sort(list);