java实现相同分数排名_java做成绩排名表,如何实现同分同名
思路: 排序肯定还是要排的, 按照Java成绩来进⾏排练. 然后排名的时候,进⾏⽐较. 如果这⼀名的成绩和上⼀名的相同, 那么名次相同, 如果⽐上⼀名分数低,那么排名加⼀.
可以使⽤传统的,集合排序,输出. 也可以使⽤java8新提供的Stream API进⾏操作
参考代码如下
输出结果
另外⼀种情况,相同并列,不同跳过----
Collections.sort(stdGpas, new Comparator(){
@Override
四级成绩是真实成绩还是排名public int compare(StdGpa s1, StdGpa s2) {
return -Gpa(), s2.getGpa());
}
});
int index = 0;// 排名
int no = 0;//去重
double lastScore = -1;// 最近⼀次的分
for (int i = 0; i < stdGpas.size(); i++) {
StdGpa s = (i);
if (Doublepare(lastScore, s.getGpa())!=0) { // 如果成绩和上⼀名的成绩不相同,那么排名+1
lastScore = s.getGpa();
index = index + 1 + no;
no = 0 ;
}else{
no++;
}
gpaRank.Id(), index);
}