通過運用ArrayList類和和HashMap類及其中重要方法,對學生信息進行管理,實現對學生信息的增、刪、改、查操作。
1、Student學生信息類
public class Student {
private int stuNo;//學號
private String stuName;//姓名
private String classNo;//班級號
public Student(){
}
public String getClassNo() {
return classNo;
}
public void setClassNo(String classNo) {
this.classNo = classNo;
}
public int getStuNo() {
return stuNo;
}
public void setStuNo(int stuNo) {
this.stuNo = stuNo;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public Student(int stuNo, String stuName) {
super();
this.stuNo = stuNo;
this.stuName = stuName;
}
public Student(int stuNo, String strName, String classNo) {
super();
this.stuNo = stuNo;
this.stuName = strName;
this.classNo = classNo;
}
@Override
public String toString() {
return "Student [strName=" + stuName + ", stuNo=" + stuNo + ", classNo="+classNo +"]";
}
}
2、StudentUtil工具類,封裝了對學生信息增刪改查的操作方法
import java.util.*;
public class StudentUtil {
private HashMap students=null;
public StudentUtil(){
students=new HashMap();
}
//按姓名查找
public Student getStudentByName(String name){
if(students!=null&&students.size()>0){
Student student=(Student)students.get(name);
return student;
}
return null;
}
//按班級號查找
public ArrayList getStudentByClassNo(String classNo){
ArrayList result=new ArrayList();
for(Object key:students.keySet()){
Student stu=(Student)students.get(key);
if(stu.getClassNo().indexOf(classNo)!=-1){
result.add(stu);
}
}
return result;
}
//返回所有學生信息
public ArrayList getAllStudents(){
ArrayList result=new ArrayList();
for(Object key:students.keySet()){
Student stu=(Student)students.get(key);
result.add(stu);
}
return result;
}
//添加學生
public void addStudent(Student student){
this.students.put(student.getStuName(), student);
}
public void addStudent(int stuNo,String stuName,String classNo){
Student student=new Student(stuNo,stuName,classNo);
addStudent(student);
}
//刪除學生
public boolean deleteStudent(Student student){
String stu=student.getStuName();
return this.deleteStudent(stu);
}
public boolean deleteStudent(String stuName){
if(students!=null&&students.size()>0){
Student student=this.getStudentByName(stuName);
if(student==null)
return false;
this.students.remove(stuName);
return true;
}
return false;
}
//修改學生
public boolean updateStudent(Student student){
if(students!=null&&students.size()>0){
Student stu=this.getStudentByName(student.getStuName());
if(stu==null)
return false;
this.students.put(stu.getStuName(), stu);
return true;
}
return false;
}
public boolean updateStudent(int stuNo,String stuName,String classNo){
Student stu=this.getStudentByName(stuName);
stu.setStuName(stuName);
stu.setStuNo(stuNo);
stu.setClassNo(classNo);
return updateStudent(stu);
}
}
3、testStudent測試類,測試StudentUtil中方法是否能成功實現增刪改查操作
import java.util.ArrayList;
import java.util.Scanner;
public class testStudent {
public static void main(String[] args) {
System.out.println("-系統初始化開始----------");
StudentUtil studentutil=new StudentUtil();
Student student=null;
for(int i=1;i<=10;i++){
if(i<=5)
student=new Student(i,"student"+i,"s100"+i);
else
student=new Student(i,"student"+i,"s200"+i);
studentutil.addStudent(student);
}
System.out.println("-系統初始化結束----------");
Scanner input=new Scanner(System.in);
//添加學生信息
System.out.println("---------添加一個學生信息----------");
student=new Student();
System.out.println("No:");
student.setStuNo(input.nextInt());
System.out.println("Name:");
student.setStuName(input.next());
System.out.println("Class:");
student.setClassNo(input.next());
studentutil.addStudent(student);
showStudent(studentutil);
//刪除學生信息
System.out.println("---------刪除一個學生信息----------");
System.out.println("輸入要刪除的學生姓名:");
String stuName=input.next();
if(studentutil.deleteStudent(stuName)){
System.out.println("刪除成功!");
showStudent(studentutil);
}
else{
System.out.println("刪除失敗!");
}
//修改學生信息
System.out.println("---------修改一個學生信息----------");
System.out.println("輸入要修改的學生姓名:");
String name=input.next();
student=studentutil.getStudentByName(name);
if(student!=null){
System.out.println("輸入學生班級:");
student.setClassNo(input.next());
if(studentutil.updateStudent(student)){
System.out.println("修改成功!");
showStudent(studentutil);
}
else{
System.out.println("修改失敗!");
}
}
else{
System.out.println("查無此人!");
}
//查找學生信息
System.out.println("---------查找改一個學生信息----------");
System.out.println("輸入要查找的班級:");
String classNo=input.next();
ArrayList list=studentutil.getStudentByClassNo(classNo);
System.out.println("---------顯示學生信息----------");
for(Object obj:list){
System.out.println(obj);
}
}
//顯示所有學生信息類
private static void showStudent(StudentUtil studentutil) {
System.out.println("---------顯示學生信息----------");
ArrayList result=studentutil.getAllStudents();
for(Object obj:result){
System.out.println(obj);
}
}
}