java课程成绩从高到低排序-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

java课程成绩从高到低排序

蛮大人123 2016-06-13 16:06:27 4213

需求是这样:某班30个学生的学号为20160301~20160330,全部选修了java 程序设计课程,给出所有同学成绩(实现时可用随机数产生,范围为60~100)编写一个程序将该班的java程序设计课程成绩按高到低排序打印输出,要求分别用List和Map来实现,打印包括学号、姓名、性别、成绩。

Java
分享到
取消 提交回答
全部回答(1)
  • 蛮大人123
    2019-07-17 19:36:19
    public class StuScore {
    
    public static void main(String[] args) {
    
        TreeSet<Student> ts=new TreeSet<Student>(new Com());
        //添加元素进去
        for(int i=20070301,j=1;i<=20070330;i++,j++)
        {
            ts.add(new Student(i,"同学"+j,"男",(int) (40*Math.random()+60)));
        }
    
        //迭代循环取出
        Iterator<Student> it=ts.iterator();
        while(it.hasNext())
        {
            Student o1=it.next();
            System.out.println("学号:"+o1.num+"  "+"姓名:"+o1.name+"  "+"性别:"+o1.sex+"  "+"成绩:"+o1.grade);
    
        }
    
    }
    }

    //学生类

    class Student 
    {
    int num;
    int grade;
    String name;
    String sex;
    
    public Student(int num, String name, String sex, int grade)
    {
        this.num=num;
        this.name=name;
        this.sex=sex;
        this.grade=grade;
    }
    }
    class Com implements Comparator
    {
    
    @Override
    public int compare(Object o1, Object o2) {
    
        Student s1=(Student) o1;
        Student s2=(Student) o2;
        if(s1.grade>s2.grade)
            return 1;
        if(s1.grade<s2.grade)
            return -1;
        if(s1.grade==s2.grade)
        {
            return new Integer(s1.num).compareTo(new Integer(s2.num));
        }
        return 0;
    }
    }
    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题