java实现给出分数数组得到对应名次数组的方法
本文实例讲述了java实现给出分数数组得到对应名次数组的方法。分享给大家供大家参考。具体实现方法如下:
packagetest01; /** *给出分数数组,得到对应的名次数组 *列如有:score={4,2,5,4} *则输出:rank={2,3,1,2} */ importjava.util.ArrayList; importjava.util.Collections; importjava.util.List; publicclassScoreRank{ //输出数组 publicstaticvoidshow(int[]s){ for(intx:s)System.out.print(x); System.out.println(); } //取得名次 publicstaticint[]scoreRank(int[]score){ int[]temp=newint[score.length]; Listlis=newArrayList(); for(intx:score)//添加元素(不重复) if(!lis.contains(x))lis.add(x); Collections.sort(lis);//从小到大排序 Collections.reverse(lis);//从大到小排序 for(inti=0;i<score.length;i++)//下标从0开始 temp[i]=lis.indexOf(score[i])+1; //所以:正常名次=取得下标+1 returntemp; } publicstaticvoidmain(String[]args){ int[]score={4,2,5,4};//名次{2,3,1,2} int[]rank=scoreRank(score);//取得名次 System.out.print("原始分数:");show(score); System.out.print("对应名次:");show(rank); } }
运行结果如下:
原始分数:4254
对应名次:2312
希望本文所述对大家的java程序设计有所帮助。