编写一个程序,将原来放在Linkedlist链表里的学生英语成绩单存放在treeset集合里,使得成绩自动排序
时间: 2024-02-20 09:01:08 浏览: 78
好的,我可以帮你解答这个问题。
首先,需要定义一个 `Student` 类,用于存储学生的成绩信息,包括姓名和英语成绩。代码如下:
```java
public class Student implements Comparable<Student> {
private String name;
private int score;
public Student(String name, int score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
@Override
public int compareTo(Student o) {
return this.score - o.score;
}
}
```
`Student` 类实现了 `Comparable` 接口,并重写了 `compareTo` 方法,用于比较两个学生的成绩大小。
接下来,可以编写一个程序,将 `Linkedlist` 中的学生成绩转存到 `TreeSet` 集合中,并且自动按照成绩从小到大排序。代码如下:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
// 创建 Linkedlist 对象,存放学生成绩
LinkedList<Student> list = new LinkedList<>();
list.add(new Student("Tom", 80));
list.add(new Student("Jerry", 90));
list.add(new Student("Alice", 70));
list.add(new Student("Bob", 85));
// 创建 TreeSet 对象,存放学生成绩,并按照成绩从小到大排序
TreeSet<Student> set = new TreeSet<>();
set.addAll(list);
// 输出学生成绩
for (Student student : set) {
System.out.println(student.getName() + " " + student.getScore());
}
}
}
```
以上程序会输出以下结果:
```
Alice 70
Tom 80
Bob 85
Jerry 90
```
可以看到,学生成绩已经按照从小到大的顺序排列。
阅读全文