利用TreeSet<T>排序学生成绩用Java编写一个程序,从标准输入中读取8名学生姓名和成绩信息,将链表中的学生英语成绩单存放到一个树集中,使得按成绩自动升序排序,并输出排序结果(包括名字和对应成绩)
时间: 2024-02-18 19:03:53 浏览: 30
好的,以下是Java程序代码:
```java
import java.util.Scanner;
import java.util.TreeSet;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
TreeSet<Student> treeSet = new TreeSet<>();
for (int i = 1; i <= 8; i++) {
System.out.print("请输入第" + i + "个学生的姓名和成绩,用空格分隔:");
String name = scanner.next();
int score = scanner.nextInt();
treeSet.add(new Student(name, score));
}
System.out.println("排序结果:");
for (Student student : treeSet) {
System.out.println(student.name + " " + student.score);
}
}
static class Student implements Comparable<Student> {
String name;
int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
@Override
public int compareTo(Student o) {
return Integer.compare(score, o.score);
}
}
}
```
程序中使用了一个内部类 `Student` 来封装学生的姓名和成绩信息,实现了 `Comparable` 接口,以便于让 `TreeSet` 按成绩自动升序排序。在 `main` 方法中,通过循环读取8名学生的信息,并将每个学生对象添加到 `TreeSet` 中,最后遍历 `TreeSet` 输出排序结果。