我做学校办公管理的项目过程中,需要学生成绩排名。
学生的成绩排名有个特点,就是相同分数,名次相同,但后面的排名要按前面的人数顺次排下去。如有两个第三名,那么接下来就是第五名了。
下面是自己做的测试代码:
public void pxout(){
//在hashmap中放学生成绩,用hashmap来排序
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("a", 80);
map.put("b", 85);
map.put("c", 90);
map.put("d", 95);
map.put("e", 85);
map.put("f", 90);
map.put("g", 90);
map.put("h", 95);
List<Map.Entry<String, Integer>> infoIds =
new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
System.out.println("排序前");
//排序前
for (int i = 0; i < infoIds.size(); i++) {
String id = infoIds.get(i).toString();
System.out.println(id);
}
//排序方法
Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return (o2.getValue() - o1.getValue());
}
});
System.out.println("排序后");
//排序后
for (int i = 0; i < infoIds.size(); i++) {
String id = infoIds.get(i).toString();
System.out.println(id);
}
//计算学生名次
HashMap hashmap = new HashMap();
int currmc=0;
int currfz=0;
int isChange = 1;
for (int i = 0; i < infoIds.size(); i++) {
if(i>0)
{
currfz = infoIds.get(i-1).getValue();
if(infoIds.get(i).getValue()== currfz)
isChange= 0;
}
if(isChange==1)
{
hashmap.put(infoIds.get(i).getKey(), String.valueOf(i+1));
currmc = i+1;
}
else
{
hashmap.put(infoIds.get(i).getKey(), String.valueOf(currmc));
isChange=1;
}
}
System.out.println("排名次后");
Iterator iter = hashmap.entrySet().iterator();
while (iter.hasNext()) {
Entry entry = (Entry) iter.next();
//Object value= entry.getValue();
//Object key =entry.getKey();
System.out.println(entry.getKey()+ "="+entry.getValue());
}
特简单的,呵呵。
分享到:
相关推荐
javaee学生成绩排名系统,实验报告和模版
汇编 学生成绩排名,汇编学生成绩排名,能将各个学生的学号,成绩,名次输出
C语言-课程设计-学生成绩排名系统 还有一个数组版的,需要可以去看看,需要什么的话留言,我都会逐一上传!
学生成绩排名系统,该系统的主要功能如下: 1) 具备对成绩的管理功能(添加、删除、排序) 2) 具备对成绩的统计功能(最高分,最低分,平均分,及格率等) 3) 具备按学号、姓名、或课程名查询成绩的功能。 4)学生...
学生成绩排名管理系统-C++-课程设计报告书样本.doc
" "2、设计合理的数据结构和系统框架 " "3、编程简练,程序功能齐全,能正确运行 " "4、说明书、流程图要清楚 " "5、课题完成后必须按要求提交课程设计报告 " "任务: " "设计一个学生成绩排名系统,该系统的主要...
JAVAEE课程设计学生成绩排名系统
软件工程专业第一学期学生成绩排名.xls
学生成绩排名系统课程设计报告书.doc
" "2、设计合理的数据结构和系统框架 " "3、编程简练,程序功能齐全,能正确运行 " "4、说明书、流程图要清楚 " "5、课题完成后必须按要求提交课程设计报告 " "任务: " "设计一个学生成绩排名系统,该系统的主要...
用Excel电子表格为学生成绩排名次优质资料.doc
21计网1-学生成绩排名[有效].xls
计算机类学生成绩排名[有效] (2).xls
数据结构(Java语言描述) 案例13 学生成绩排名.docx 学习资料 复习资料 教学资源
c语言 成绩排名 c++ 系统 #include #include struct student { char name[20]; long int num; float score[4]; } ;