Java List集合计算排名,相同分数名次一样

Posted java李杨勇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java List集合计算排名,相同分数名次一样相关的知识,希望对你有一定的参考价值。

思路: 按照用户成绩分数来进行排名.,在然后排名的时候进行比较. 如果这一名的用户成绩分数和上一名的相同, 那么名次相同, 如果比上一名分数低,那么排名加一 。

//该方法可用于分数成绩排名计算操作
    //传入需要处理的用户成绩集合和分数
    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;
    

以上是关于Java List集合计算排名,相同分数名次一样的主要内容,如果未能解决你的问题,请参考以下文章

java语言做成绩排名表,如何实现同分同名次,最好有代码,谢谢

178. 分数排名

MYSQL分数排名

178. 分数排名

178. 分数排名

LeetCode-178:分数排名