Java案例使用比较排序器comparator实现成绩排序

网友投稿 343 2022-08-16


Java案例使用比较排序器comparator实现成绩排序

需求:用TreeSet集合存储多个学生信息(姓名,语文成绩,数学成绩),并遍历该集合;要按照总分从高到低进行排序

分析:

1.创建学生类 成员变量 姓名,语文成绩、数学成绩;成员方法 求总分;构造方法 无参构造,带参构造; get\set方法2.创建测试类3.创建TreeSet集合对对象,并使用内部类的方式重写compare方法

要定好排序规则,主要条件按照总分从高到底排序,在总分相同的情况下按照语文成绩排序,在两者都相同的情况下判断姓名是否相同,相同就不存储,不相同存进来,按照姓名字母进行排序

4.创建学生对象,并使用带参构造添加学生数据5.使用add方法将学生数据加入到TreeSet集合中6.进行遍历

代码实现:

Student类

public class Student {

//成员变量

private String name;

private int YWscore;

private int YYscore;

//构造方法

public Student(){}

public Student(String name, int YWscore, int YYscore) {

this.name = name;

this.YWscore = YWscore;

this.YYscore = YYscore;

}

//get/set方法

public String getName() {

return name;

}

public void setName(String name) {

this.nhttp://ame = name;

}

public int getYWscore() {

return YWscore;

}

public void setYWscore(int YWscore) {

this.YWscore = YWscore;

}

public int getYYscore() {

return YYscore;

}

public void setYYscore(int YYscore) {

this.YYscore = YYscore;

}

//定义求总成绩方法

public int getSum(){

int sum=YWscore+YYscore;

return sum;

}

}

测试类

public class StudentDemo {

public static void main(String[] args) {

//创建TreeSet集合对象

TreeSetts=new TreeSet(new Comparator() {

@Override

public int compare(Student s1, Student s2) {

// return 0;

int num=s2.getSum()-s1.getSum();//要从高到底排序

int num1= num==0?s1.getYWscore()-s2.getYWscore():num;//当总分相同时按照语文成绩排序

int num2= num1==0?s1.getName().compareTo(s2.getName()):num1;

return num2;

}

});

//创建学生对象

Student s1=new Student("张三",56,66);

Student s2=new Student("张四",70,69);

Student s3=new Student("张五",80,76);

Student s4=new Student("张六",66,96);

Student s5=new Student("张七",66,96);

ts.add(s5);

ts.add(s1);

ts.add(s2);

ts.add(s3);

ts.add(s4);

//遍历

for (Student ss:ts){

System.out.println(ss.getName()+","+ss.getYWscore()+","+ss.getYYscore()+","+ss.getSum());

}

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java案例实现不重复的随机数
下一篇:教你springboot+dubbo快速启动的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~