用treeset用户分别从两个文本框输入学生的姓名和分数
时间: 2024-03-19 17:42:16 浏览: 22
好的,以下是基于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;
}
}
});
System.out.print("请输入学生的姓名和分数(以空格分隔):");
String input = sc.nextLine();
while (!input.equals("")) {
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.print("请输入学生的姓名和分数(以空格分隔):");
input = sc.nextLine();
}
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`来存储学生对象,其中学生对象的比较方式是先按照分数从高到低排序,如果分数相同则按照姓名的字典序排序。在输入学生信息时,我们使用了一个`while`循环来不断读入用户的输入,直到输入为空字符串为止。最后,我们将排序后的学生列表输出到控制台上。