问题:设计一个管理所有学生信息(有学号、姓名、成绩)的类,要求使用映射类存储所有学生的信息,存储时根据学号进行排序,并提供以下功能:添加学生、按学号删除学生,按姓名查找学生,查找所有学生。要求有测试类,能进行演示,输出所有学生信息时按学号依次打印。
package ja;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class Sy5__1 {
static class StudentManager {
private Map<String, Student> map;
public StudentManager() {
map = new TreeMap<String, Student>();
}
// public StudentManager(TreeMap<String, Student> map) {
// this.map = map;
// }
public void add(Student s) {// 添加
map.put(s.getId(), s);
}
public void del(String id) {// 删除
map.remove(id);
}
public List<Student> find(String name) {// 按姓名查找
List<Student> list = new ArrayList<Student>();
Set<String> keySet = map.keySet();
for (String key : keySet) {
Student values = map.get(key);
if (values.equals(name))
list.add(values);
}
return list;
}
public List<Student> find() {// 查找所有
List<Student> list = new ArrayList<Student>();
Set<String> keySet = map.keySet();
for (String key : keySet) {
Student values = map.get(key);
list.add(values);
;
}
return list;
}
public Map<String, Student> getMap() {
return map;
}
public void show(List<Student> stus) {// 打印
int i = 1;
for (Student s : stus) {
System.out.println(i++ + ":" + s.toString());
}
System.out.println(" -----------------------");
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
StudentManager sm = new StudentManager();
for (int i = 1; i <= 10; i++) {
DecimalFormat df = new DecimalFormat("0000");
String name = df.format(i);// 把数字1格式化成0001
sm.add(new Student(i + "", name, i));// 增"
}
List<Student> stus = sm.find();
if (stus != null)
for (Student s : stus) {
System.out.println(s.toString());
}
}
static class Student {
private String id;
private String name;
private double score;
public Student(String id, String name, double score) {
this.id = id;
this.name = name;
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 double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public String toString() {
return "student [id=" + id + ", name=" + name + ", score=" + score + "]";
}
}
}