开发者社区> 问答> 正文

java课程成绩从高到低排序

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

展开
收起
蛮大人123 2016-06-13 16:06:27 6363 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    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;
    }
    }
    2019-07-17 19:36:19
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载