编写一个程序,用户可以从键盘录入若干个学生的姓名和分数(程序每次提示用户输入“Y”或“N”决定是否继续录入学生信息,如果用户输入“N”则用户输入完毕。输入的“Y”、“N”不区分大小写)。用户录入完毕后,程序按成绩由高到低的顺序输出学生的姓名和分数(姓名和分数之间用一个空格分割)。【说明:键盘输入可以使用Scanner类
要注意内部类的使用方法
package 作业1;
import java.util.*;
public class Student {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<students> list = new ArrayList<students>();
Scanner scanner = new Scanner(System.in);
System.out.println("是否继续输入学生信息?(Y/N)");
while(true)
{
String ss = scanner.nextLine();
if(ss.equals("y")||ss.equals("Y"))
{
System.out.println("请输入学生的姓名和成绩:");
String n = scanner.nextLine();
double a = scanner.nextDouble();
list.add(new students(n,a));
System.out.println("是否继续输入学生信息?(Y/N)");
}
else if(ss.equals("n")||ss.equals("N"))
{
break;
}
}
Student s = new Student();
MyComparator myCom = s.new MyComparator();//创建内部类对象
Collections.sort(list,myCom);
System.out.println(list.toString() + " ");
scanner.close();
}
class MyComparator implements Comparator<students>
{
public int compare(students t1,students t2)
{
if(t1.getScore() < t2.getScore())
return 1;
else if(t1.getScore() > t2.getScore())
return -1;
else
return 0;
}
}
}
package 作业1;
//import java.util.*;
public class students {
private String name;
private double score;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public String toString() {
return getName() + " " + getScore();
}
public students(String name, double score) {
this.name = name;
this.score = score;
}
}