问题:设计一个管理所有学生信息(有学号、姓名、成绩)的类,要求使用映射类存储所有学生的信息,存储时根据学号进行排序,并提供以下功能:添加学生、按学号删除学生,按姓名查找学生,查找所有学生。要求有测试类,能进行演示,输出所有学生信息时按学号依次打印。
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 + “]”;
}
}
}