3.编写一个程序,把学生学号、姓名和考试分数录入到Map中,并按分数降序显示 学生的名字。要求定义Student类,封装学生学号,姓名和考试分数3个属性及方法。
时间: 2023-06-19 10:10:02 浏览: 374
c++定义一个学生类(属性有学号,姓名,成绩),要求输入学生的学号,姓名及三科的成绩,以输入内容来设置学生对象的属性。最后输出学生的学号,姓名及三科的平均成绩。
下面是一个Java程序,实现了将学生学号、姓名和考试分数录入到Map中,并按分数降序显示学生的名字的功能。程序中定义了一个Student类,封装了学生学号、姓名和考试分数3个属性及方法。
```
import java.util.*;
class Student {
private int id;
private String name;
private int score;
public Student(int id, String name, int score) {
this.id = id;
this.name = name;
this.score = score;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
}
public class Test {
public static void main(String[] args) {
Map<Integer, Student> map = new HashMap<>();
map.put(1, new Student(1, "张三", 80));
map.put(2, new Student(2, "李四", 90));
map.put(3, new Student(3, "王五", 70));
map.put(4, new Student(4, "赵六", 85));
map.put(5, new Student(5, "小明", 95));
List<Map.Entry<Integer, Student>> list = new ArrayList<>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer, Student>>() {
@Override
public int compare(Map.Entry<Integer, Student> o1, Map.Entry<Integer, Student> o2) {
return o2.getValue().getScore() - o1.getValue().getScore();
}
});
for (Map.Entry<Integer, Student> entry : list) {
System.out.println(entry.getValue().getName());
}
}
}
```
运行程序,输出结果为:
```
小明
李四
赵六
张三
王五
```
阅读全文