① java 输入n个学生信息,然后通过程序得到所有学生信息按照成绩从高到低排列。
publicstaticvoidmain(String[]args){
Comparator_Testct=newComparator_Test();//实例化
Set<Student>set=newTreeSet<Student>(ct);//定义一个Set集合,元素为Student类型(参数为ct,即Comparator_Test类型,就是说这个集合的比较规则是依据这个类型)
inti=1;//变量,保存人数
Iterator<Student>it=addset(set).iterator();//定义一个迭代器,其值为addset方法的返回值
System.out.println("姓名 "+"语文 "+"数学 "+"总分 "+"名次 ");//打印列表标头信息
while(it.hasNext()){//如果迭代器中有元素,执行循环
Studentstu=it.next();//返回一个Student对象
System.out.println(stu.getName()+" "+stu.getChscore()+" "+stu.getMhscore()+" "+stu.getTotal()+" "+"第"+i+"名");//打印这个Student对象的信息
i++;//将人数进行累加
}
}
//根据系统输入数据,返回一个Student类型的对象
publicstaticStudentadd(){
intchscore=0,mhscore=0;//整型变量分别保存语文与数学的成绩
Scannerscan=newScanner(System.in);//系统输入
System.out.println("输入一个学生名称");//提示信息
Stringname=scan.next();//保存学生名称
Scannerscan1=newScanner(System.in);
System.out.println("输入"+name+"的语文成绩,必须是一个整数且不能大于100");
chscore=scan1.nextInt();
Scannerscan2=newScanner(System.in);
System.out.println("输入"+name+"的数学成绩,必须是一个整数且不能大于100");
mhscore=scan2.nextInt();
//初始化一个Student实例,并为其各个属性赋值(通过系统输入的数据)
Studentstu=newStudent();
stu.setName(name);
stu.setChscore(chscore);
stu.setMhscore(mhscore);
stu.setTotal(stu.getChscore()+stu.getMhscore());
returnstu;
}
//针对不同的系统操作,返回不同的集合对象
publicstaticSet<Student>addset(Set<Student>set){
set.add(add());//为集合添加一个Student对象
Scannerscanner=newScanner(System.in);//系统输入
System.out.println("是否继续添加学生?输入"+"【是】"+"继续添加,输入"+"【否】"+"结束添加。");
Strings=scanner.next();
if(s.equals("是")){//继续添加
addset(set);//递归调用
}else{
returnset;
}
returnset;//返回集合
}
就这样吧····