思路: 按照用户成绩分数来进行排名.,在然后排名的时候进行比较. 如果这一名的用户成绩分数和上一名的相同, 那么名次相同, 如果比上一名分数低,那么排名加一 。
//该方法可用于分数成绩排名计算操作
//传入需要处理的用户成绩集合和分数
public int getClassRank(List<UserExamScoreVo> list,double userScore){
ArrayList<Double> arrayList = new ArrayList();
Map map = new HashMap();
//将需要排序的字段放入集合
for(int p = 0; p < list.size(); p++){
arrayList.add( Double.valueOf(list.get(p).getScore()));
}
//用户成绩为key,循坏下标为value生成map
for (int i = 0; i < arrayList.size() ; i++) {
if(i == 0){
map.put(arrayList.get(0),0 + 1);
}
if(!map.containsKey(arrayList.get(i))){
map.put(arrayList.get(i),i+1);
}
}
//从map中取得对应的位置
int rank = (int) map.get(userScore);
return rank;
}