编写程序将一组学生对象的姓名和成绩存入到一个树集,使得按照成绩降序排列,
时间: 2024-12-22 09:21:32 浏览: 9
为了编写一个程序,首先我们需要创建一个表示学生的类,包含姓名(Name)和成绩(Score)两个属性。然后我们可以使用`TreeMap`,它在Java集合框架中提供了一个按照键的自然顺序排序的红黑树实现。由于我们要按成绩降序排列,我们可以在比较器上做文章。以下是简单的步骤:
```java
import java.util.*;
class Student {
String name;
double score;
// 构造函数和 getter/setter 省略...
}
public class Main {
public static void main(String[] args) {
TreeMap<Student, Double> studentMap = new TreeMap<>(
(s1, s2) -> -Double.compare(s2.score, s1.score)); // 按照成绩从大到小排序
List<Student> students = ... // 假设这是你要存储的学生列表
for (Student student : students) {
studentMap.put(student, student.score);
}
for (Map.Entry<Student, Double> entry : studentMap.entrySet()) {
System.out.println("姓名:" + entry.getKey().name + ", 成绩:" + entry.getValue());
}
}
}
```
在这个例子中,我们传递了一个自定义比较器给`TreeMap`,该比较器通过 `-Double.compare()` 函数实现了成绩的降序排列。
阅读全文