第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對象排列問題

對象排列問題

幕布斯6054654 2019-02-20 01:31:20
項目任務是要處理一個田徑賽事的比賽結果。需要實現下面功能:把某個比賽項目的成績從高到低結果排序并在前面加上名次。成績相同者名次相同,并按人名的字典(字母)順序排序)。 比如本來結果的列表ArrayList<Result>輸出如下: 成績 名字 7.00 Donald Li6.00 Joan Chen 7.00 Alan Jiang4.00 Tricia Zhang7.00 Ada Wang 6.00 William Sf 方法應該達到的理想效果如下1 7.00 Ada Wang 1 7.00 Alan Jiang1 7.00 Donald Li4 6.00 Joan Chen4 6.00 William Sf6 4.00 Tricia Zhang 本人菜鳥,試了很多種方法都排不對,請能者大神不吝賜教指點迷津,非常感謝!
查看完整描述

5 回答

?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

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

查看完整回答
反對 回復 2019-03-01
?
烙印99

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)橄嗤?

查看完整回答
反對 回復 2019-03-01
  • 5 回答
  • 0 關注
  • 399 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號