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程序设计有所帮助。