java实现相同分数排名_java做成绩排名表,如何实现同分同名次
https://zhidao.baidu.com/question/1900171286360976020.html?qq-pf-to=pcqq.c2c
思路: 排序肯定還是要排的, 按照Java成績來進行排練. 然后排名的時候,進行比較. 如果這一名的成績和上一名的相同, 那么名次相同, 如果比上一名分數低,那么排名加一.
可以使用傳統的,集合排序,輸出. 也可以使用java8新提供的Stream API進行操作
參考代碼如下
輸出結果
另外一種情況,相同并列,不同跳過----
Collections.sort(stdGpas, new Comparator(){
@Override
public int compare(StdGpa s1, StdGpa s2) {
return -Double.compare(s1.getGpa(), s2.getGpa());
}
});
int index = 0;// 排名
int no = 0;//去重
double lastScore = -1;// 最近一次的分
for (int i = 0; i < stdGpas.size(); i++) {
StdGpa s = stdGpas.get(i);
if (Double.compare(lastScore, s.getGpa())!=0) { // 如果成績和上一名的成績不相同,那么排名+1
lastScore = s.getGpa();
index = index + 1 + no;
no = 0 ;
}else{
no++;
}
gpaRank.put(s.getId(), index);
}
總結
以上是生活随笔為你收集整理的java实现相同分数排名_java做成绩排名表,如何实现同分同名次的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java immutable系列_Jav
- 下一篇: pyqt5 捕获异常确保程序不退出_Py