5 回答
![?](http://img1.sycdn.imooc.com/545865470001bf9402200220-100-100.jpg)
TA贡献2016条经验 获得超9个赞
用 Collections.sort(list, comparator)
进行排序
在覆写的sort
方法中,先判断分数是否相同,如果相同则使用 for
循环遍历两个人名的每个位置上的字符直到某个位置上的字符有大小关系;如果不相同则直接返回成绩的大小关系。
![?](http://img1.sycdn.imooc.com/5333a0780001a6e702200220-100-100.jpg)
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
很奇怪。当两项结果值相同时,怎么没有执行if结果把rank变为相同呢?
添加回答
举报