用TreeSet编程,用户输入学生的姓名和分数,输入三次后,程序按成绩排序将这些学生的姓名和分数显示。
时间: 2024-03-19 08:42:17 浏览: 17
好的,以下是基于Java语言的代码示例:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
TreeSet<Student> set = new TreeSet<>(new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
if (o1.score == o2.score) {
return o1.name.compareTo(o2.name);
} else {
return o2.score - o1.score;
}
}
});
for (int i = 1; i <= 3; i++) {
System.out.print("请输入第" + i + "个学生的姓名和分数(以空格分隔):");
String input = sc.nextLine();
String[] arr = input.split(" ");
String name = arr[0];
int score = Integer.parseInt(arr[1]);
Student student = new Student(name, score);
set.add(student);
}
System.out.println("按照分数从高到低排序后的学生列表:");
for (Student student : set) {
System.out.println(student.name + " " + student.score);
}
}
}
class Student {
String name;
int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
}
```
这段代码中,我们使用了一个`TreeSet`来存储学生对象,其中学生对象的比较方式是先按照分数从高到低排序,如果分数相同则按照姓名的字典序排序。在输入学生信息时,我们使用了一个`for`循环来循环三次,每次读入用户的输入,并将输入的学生对象加入到`TreeSet`中。最后,我们将排序后的学生列表输出到控制台上。