1、效果图
2、核心代码
List<StuScore> stu = JSONObject.parseArray(jStuScores.toJSONString(), StuScore.class);
// JSONObject.parseArray(jStuScores.toJSONString(), StuScore.class);
Collections.sort(stu, new Comparator<StuScore>(){
/*
* int compare(Student o1, Student o2) 返回一个基本类型的整型,
* 返回负数表示:o1 小于o2,
* 返回0 表示:o1和o2相等,
* 返回正数表示:o1大于o2。
*/
public int compare(StuScore o1, StuScore o2) {
double i1 =0;
double i2 =0;
if((o1.getStuXkScoreAndRank()).getSh() == null && (o2.getStuXkScoreAndRank()).getSh() == null){
i1 = 0;
i2 = 0;
}else if((o1.getStuXkScoreAndRank()).getSh() != null && (o2.getStuXkScoreAndRank()).getSh() == null){
String str1= ((o1.getStuXkScoreAndRank()).getSh()).getStuScore();
i1 =Double.valueOf(str1);
i2 = 0;
}else if ((o1.getStuXkScoreAndRank()).getSh() == null && (o2.getStuXkScoreAndRank()).getSh() != null){
String str2= ((o2.getStuXkScoreAndRank()).getSh()).getStuScore();
i2 =Double.valueOf(str2);
i1 = 0;
}else{
String str1= ((o1.getStuXkScoreAndRank()).getSh()).getStuScore();
String str2= ((o2.getStuXkScoreAndRank()).getSh()).getStuScore();
i1 =Double.valueOf(str1);
i2 =Double.valueOf(str2);
}
//按照学生的生化成绩进行倒序排列
if(i1 < i2){
return 1;
}
if(i1 == i2){
return 0;
}
return -1;
}
});
int j = 1;
for(int i = 0; i<stu.size()-1; i++ ){
StuScore stu1 = stu.get(i);
StuScore stu2 = stu.get(i+1);
StuXkScoreAndRank stuScore1 = stu1.getStuXkScoreAndRank();
StuXkScoreAndRank stuScore2 = stu2.getStuXkScoreAndRank();
Xueke sh1 =stuScore1.getSh();
Xueke sh2 =stuScore2.getSh();
if(sh1 == null || sh2 ==null)
continue;
if(i == 0){
sh1.setStuGradeRank(""+j);
}
if((sh2.getStuScore()).equals(sh1.getStuScore())){
j++;
sh2.setStuGradeRank(sh1.getStuGradeRank());
}else{
j++;
sh2.setStuGradeRank(""+j);
}
}
package cn.doofen.entity;
import java.io.Serializable;
public class StuScore implements Serializable{
/**
*
*/
private static final long serialVersio