需求是这样:某班30个学生的学号为20160301~20160330,全部选修了java 程序设计课程,给出所有同学成绩(实现时可用随机数产生,范围为60~100)编写一个程序将该班的java程序设计课程成绩按高到低排序打印输出,要求分别用List和Map来实现,打印包括学号、姓名、性别、成绩。
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;
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。