基於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;
			
			
			}
			
		}

	}

}

運行界面:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章