基于ArrayList的雇员管理系统(增删改查)

简述ArrayList的优缺点

首先ArrayList是集合类,能存放object的数据,我们知道在java中所有的数据都是object的子类。所以ArrayList能存放各种数据,主要以存放对象为主。自带的方法可以实现对数据的增删改查。

优点:使用方便,理解容易。对数据的大小是动态的,随着元素的增加容器自动扩大。

import java.util.ArrayList;

ArrayList al=new ArrayList();//这就创建了一个ArrayList的一个容器。

其中包含了add、set、get、remove方法。具体的请查看帮助文档。

缺点:每次取出数据的时候需要遍历。效率相对较低。

比如说我想在ArrayList中找到具体的一个元素并把它取出来经行操作,就需要遍历整个容器,取出的时候还要经行类型转换。

例如有一个Student的类,它里面包含了学生的id,姓名,性别等等。我把具体的对象声明好已经放入到ArrayList中了。这时候我想通过学生的id比如stu007去找到这个学生,并对他的信息经行修改,就需要这样去写:

for(int i=0;i<al.size();i++){
  
 Student su=(Student)al.get(i);//类型转换,从object转换成学生类
    
 if(su.getStudentid().equals("stu007")) //getStudentid是学生类的成员方法,String比较内容是用的是equals函数。    
         {...}   

 }


具体的案例:公司的雇员管理系统,新报道的成员需要添加进来,可以通过他的id查看他的消息,也可以查看全部雇员的消息。并且能对雇员的薪水经行修改。

代码如下:

/**
 *作者:光羽住一
 * 作用:雇员类
 * 
 */

public class Emp {
	private String empNo;
	private String empName;
	private double empsal;
	
	public Emp(String empNo,String empName,double empsal) {
		this.empNo=empNo;
		this.empName=empName;
		this.empsal=empsal;
	}
	
	public String getEmpNo() {
		return empNo;
	}

	public void setEmpNo(String empNo) {
		this.empNo = empNo;
	}

	public String getEmpName() {
		return empName;
	}

	public void setEmpName(String empName) {
		this.empName = empName;
	}

	public double getEmpsal() {
		return empsal;
	}

	public void setEmpsal(double empsal) {
		this.empsal = empsal;
	}
	
	

}

import java.util.ArrayList;

/**
 * 基于ArrayList的雇员管理类
 * 
 *
 */

public class empManage {
	private ArrayList al=null;
	
	public empManage() {
		al=new ArrayList();
		
	}
	
	//添加新进入的雇员
	public void addEmp(Emp emp) {
		
		al.add(emp);
		System.out.println("添加成功!");
	}
	
	//根据输入的雇员编号打印雇员信息
	public void showInfo(String empNo) {
		for(int i=0;i<al.size();i++) {
			Emp emp=(Emp)al.get(i);
			if(emp.getEmpNo().equals(empNo)) {
				System.out.println("名字:"+emp.getEmpName()+"薪水:"+emp.getEmpsal());
			}
		}
	}
	
	//打印全部雇员的所有信息
	public void showAll() {
		for(int i=0;i<al.size();i++) {
			Emp emp=(Emp)al.get(i);
			System.out.println("编号:"+emp.getEmpNo()+"姓名:"+emp.getEmpName()+"薪水:"+emp.getEmpsal());
		}
	}
	
	//修改某个雇员的薪水
	public void changeSal(String empNo,double newSal) {
		for(int i=0;i<al.size();i++) {
			Emp emp=(Emp)al.get(i);
			if(emp.getEmpNo().equals(empNo)) {
				emp.setEmpsal(newSal);
			}
		}
		System.out.println("修改成功!");
	}
	
	//删除某个雇员
	public void removeEmp(String empNo) {
		for(int i=0;i<al.size();i++) {
			Emp emp=(Emp)al.get(i);
			if(emp.getEmpNo().equals(empNo)) {
				al.remove(emp);
			}
		}
		System.out.println("删除成功!");
	}



}
/*
 * 主界面类
 */
import java.io.*;
public class employeeCenter {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
		
		empManage manage=new empManage();
		while(true) {
			System.out.println("雇员管理系统,请选择功能");
			System.out.println("1.添加雇员");
			System.out.println("2.查看雇员信息");
			System.out.println("3.查看所有雇员信息");
			System.out.println("4.修改雇员薪水");
			System.out.println("5.退出系统");
			
			String type=buf.readLine();
			int choice =Integer.parseInt(type);
			switch(choice) {
			case 1:
				System.out.println("请输入雇员编号:");
				String empNo=buf.readLine();
				System.out.println("请输入雇员姓名:");
				String empName=buf.readLine();
				System.out.println("请输入雇员薪水:");
				String empSal=buf.readLine();
				double sal=Double.parseDouble(empSal);
				
				Emp emp=new Emp(empNo,empName,sal);
				manage.addEmp(emp);
				break;
			
			case 2:
				System.out.println("请输入要查找的员工编号:");
				String empNo2=buf.readLine();
				manage.showInfo(empNo2);
				break;
			
			case 3:
				manage.showAll();
				break;
			
			case 4:
				System.out.println("请输入要修改薪水的员工编号:");
				String empNo3=buf.readLine();
				System.out.println("请输入修改后的薪水:");
				String empSal3=buf.readLine();
				double sal3=Double.parseDouble(empSal3);
				manage.changeSal(empNo3, sal3);
				break;
				
			case 5:
				System.out.println("谢谢使用,再见!");
				System.exit(0);
				break;
			
			
			}
			
		}

	}

}

运行界面:



猜你喜欢

转载自blog.csdn.net/xieminyao123/article/details/79354878