- 阅读Student.java
public class Student {
private int id;
private String name;
public Student(int id, String name) {
super();
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "[id:" + id + ", name:" + name + "]";
}
@Override
public boolean equals(Object obj) {
if(obj instanceof Student){
Student other=(Student)obj;
if(other.id==this.id&&other.name.equals(this.name)){
return true;
}
}
return super.equals(obj);
}
@Override
public int hashCode() {
return this.name.hashCode();
}
②完成ClassDB.java编写,并编写测试类。
import java.util.*;
public class ClassDB {
private Map<String,List<Student>> container;
public ClassDB(){
container=new HashMap<String, List<Student>>();
}
//添加组
public void addGroup(String groupName){
container.put(groupName, new ArrayList<Student>());
log("Add Group: "+groupName+" success.");
}
//显示指定组信息,格式: 组名:该组包含的学生数
public void showGroups(){
}
//将指定学生加入到指定组
public boolean addStudentToGroup(Student student,String groupName){
}
//显示指定组中的学生信息
public void showStudentsOfGroup(String groupName){
}
//显示所有学生信息,调用 showStudentsOfGroup(String groupName);
public void showAllStudents(){
}
//通过id查找学生
public Student findStudentById(int id){
}
//通过id删除学生
public Student delStudentById(int id){
}
private void log(String msg){
if(logable){
System.out.println("LOG:"+msg);
}
}
}
③阅读ClassDBApp.java
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class ClassDBApp {
private ClassDB db = new ClassDB();
public static void main(String[] args) {
ClassDBApp app = new ClassDBApp();
run: while (true) {
app.shwoMemu();
int cmd = app.getInputInt();
switch (cmd) {
case 1:
app.addGroup();
app.pause();
break;
case 2:
app.addStudent();
break;
case 3:
app.showGroup();
app.pause();
break;
case 4:
app.showStudentOfGroup();
app.pause();
break;
case 5:
app.showAllStudents();
app.pause();
break;
case 6:
app.findStudent();
app.pause();
break;
case 7:
app.delStudent();
app.pause();
break;
case 0:
break run;
}
}
}
public void delStudent(){
pr("delete id:");
int id=getInputInt();
db.delStudentById(id);
}
public void findStudent(){
pr("found id:");
int id=getInputInt();
Student stu=db.findStudentById(id);
prln(stu==null?"没有找到":"找到了 "+stu);
}
public void showAllStudents(){
db.showAllStudents();
}
public void showStudentOfGroup(){
pr("GroupName:");
String gn=getInputStr();
db.showStudentsOfGroup(gn);
}
public void addStudent(){
pr("Student_Id:");
int id=getInputInt();
pr("Studetn_name:");
String name=getInputStr();
pr("Group_Name:");
String gn=getInputStr();
db.addStudentToGroup(new Student(id, name), gn);
}
public void addGroup() {
pr("请你输入组名:");
String groupName = getInputStr();
db.addGroup(groupName);
}
public void showGroup() {
db.showGroups();
}
public void pause() {
System.out.println("Press any key to continue.");
InputStreamReader isr = new InputStreamReader(System.in);
try {
isr.read();
} catch (IOException e) {
e.printStackTrace();
}
}
public String getInputStr() {
String inputStr = null;
Scanner scr = new Scanner(System.in);
inputStr = scr.next();
return inputStr;
}
public int getInputInt() {
Scanner scr = new Scanner(System.in);
return scr.nextInt();
}
private void pr(String msg) {
System.out.print(msg);
}
private void prln(String msg) {
System.out.println(msg);
}
public void shwoMemu() {
prln("+===================================+");
prln("| 1.add Group |");
prln("| 2.add Student to Group |");
prln("| 3.show Groups |");
prln("| 4.show Students of Group |");
prln("| 5.show all Students |");
prln("| 6.find a student by id |");
prln("| 7.delete a student by id |");
prln("| 0.exit |");
prln("+===================================+");
prln("please choice(1,2,3,4,5,6,7,0)");
}
}
集合类那一块真的没学好,导致实验课上的题目不会写,由于题目比较长,有空闲时间的大神帮忙看看啊,先挂这了,继续看书去【暴风哭泣】