5 回答

TA貢獻2016條經驗 獲得超9個贊
用 Collections.sort(list, comparator)
進行排序
在覆寫的sort
方法中,先判斷分數是否相同,如果相同則使用 for
循環(huán)遍歷兩個人名的每個位置上的字符直到某個位置上的字符有大小關系;如果不相同則直接返回成績的大小關系。

TA貢獻1829條經驗 獲得超13個贊
非常感謝回復!
現在我已經把結果列表按成績高低和名字字母順序排列好了,結果列表現在是resultList:
7.00 Ada Wang
7.00 Alan Jiang
7.00 Donald Li
6.00 Joan Chen
6.00 William Sf
4.00 Tricia Zhang
下面開始往結果前面加名次
int[] rank=new int[resultList.size()] ;
rank[0]=1;
for(int i=1; i<resultList.size();i++)
{if(resultList.get(i).getResultValue()==resultList.get(i-1).getResultValue())
{rank[i]=rank[i-1];}
else
{rank[i]=i+1;}
}
for(int i=0; i<resultList.size();i++) {
System.out.println(rank[i]+" "+resultList.get(i).getResultValue()+" "+resultList.get(i).getParticipant().getName()+" "+resultList.get(i).getParticipant().getTeam());
}
打印結果居然是:
1 7.00 Ada Wang
2 7.00 Alan Jiang
3 7.00 Donald Li
4 6.00 Joan Chen
5 6.00 William Sf
6 4.00 Tricia Zhang
很奇怪。當兩項結果值相同時,怎么沒有執(zhí)行if結果把rank變?yōu)橄嗤?
添加回答
舉報