定义学生类Student。类中包含学号、姓名、年龄和成绩,执行定义构造方法、setter和getter方法等以及覆盖toString()方法(以字符串“学号 姓名 年龄 成绩”为返回值)。 (2)定义一个学生管理类StuMgr,实现如下功能: 1)Generate()方法,根据输入数据(直接在程序中定义字符串,用后面给出的测试数据)生成list学生集合。 2) Sort()方法,采用Collections算法类+匿名类实现按照学生成绩降序排序。 3)Show()方法以迭代方法显示集合中所有学生信息。 (3)定义一个测试类 Gentest.java 在main方法中实现后面给出的输出
时间: 2024-02-12 15:05:42 浏览: 261
好的,以下是我给出的代码实现:
Student.java:
```
public class Student {
private String id;
private String name;
private int age;
private double score;
public Student(String id, String name, int age, double score) {
this.id = id;
this.name = name;
this.age = age;
this.score = score;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
@Override
public String toString() {
return id + " " + name + " " + age + " " + score;
}
}
```
StuMgr.java:
```
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class StuMgr {
private List<Student> students;
public StuMgr() {
students = new ArrayList<Student>();
}
public void Generate() {
String data = "001 张三 18 80.0\n002 李四 19 90.0\n003 王五 17 70.0\n004 赵六 20 85.0\n005 钱七 18 78.0";
String[] studentData = data.split("\n");
for (String s : studentData) {
String[] stud = s.split(" ");
Student student = new Student(stud[0], stud[1], Integer.parseInt(stud[2]), Double.parseDouble(stud[3]));
students.add(student);
}
}
public void Sort() {
Collections.sort(students, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return Double.compare(o2.getScore(), o1.getScore());
}
});
}
public void Show() {
for (Student s : students) {
System.out.println(s.toString());
}
}
}
```
Gentest.java:
```
public class Gentest {
public static void main(String[] args) {
StuMgr stuMgr = new StuMgr();
stuMgr.Generate();
stuMgr.Sort();
stuMgr.Show();
}
}
```
运行 Gentest.java 后输出为:
```
002 李四 19 90.0
004 赵六 20 85.0
001 张三 18 80.0
005 钱七 18 78.0
003 王五 17 70.0
```
阅读全文