1. 程式人生 > >關於實現類按多屬性排序的問題(compareTo()函式應用)

關於實現類按多屬性排序的問題(compareTo()函式應用)

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);