集合中ArrayList的使用

集合中ArrayList的使用

          常用集合類主要分爲CollectionMap兩大分支,常用的有五個,HashMap、ArrayList、LinkedList、Vector、Stack

他們的關係如下:

 

 

 

 

使用ArrayList,實現員工的信息處理,代碼如下:

package com.lj.test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class Demo7_2 {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
		// TODO Auto-generated method stub
		//創建一個EmpManage對象
		EmpManage em=new EmpManage();
		
		BufferedReader br=new BufferedReader (new InputStreamReader(System.in));
		//做出一個簡單菜單
		while(true)
		{
			
			System.out.println("請選擇你要進行的操作");
			System.out.println("1:添加僱員");
			System.out.println("2:查找一個僱員");
			System.out.println("3:修改一個僱員工資");
			System.out.println("4:刪除一個僱員");
			
				String opertype=br.readLine();
				if("1".equals(opertype))
				{
					System.out.println("請輸入編號:");
					String empNo=br.readLine();
					System.out.println("請輸入名字:");
					String name=br.readLine();
					System.out.println("請輸入薪水:");
					float salary=Float.parseFloat(br.readLine());
					Emp emp=new Emp(empNo,name,salary);
					em.addEmp(emp);
				}
				else if("2".equals(opertype))
				{
					System.out.println("請輸入編號:");
					String empNo=br.readLine();
					em.qeuryEmp(empNo);
					
				}
				else if("3".equals(opertype))
				{
					System.out.println("請輸入編號:");
					String empNo=br.readLine();
					System.out.println("請輸入薪水:");
					float newSalary=Float.parseFloat(br.readLine());
					Emp emp=new Emp();
					System.out.println("員工:"+empNo);
					//System.out.println("姓名:"+emp.getName());
					System.out.println("修改後的薪水爲:"+newSalary);
				}
				else if("4".equals(opertype))
				{
					System.out.println("請輸入編號:");
					String empNo=br.readLine();
					em.delEmp(empNo);
					System.out.println("刪除的是"+empNo+"員工");
					System.out.println("恭喜你刪除成功!");
				}
				
			
		}
	}

}
class EmpManage{
	ArrayList<Emp> al=new ArrayList<Emp>();
	
	//添加員工信息
	public void addEmp(Emp emp)
	{
		al.add(emp);
		System.out.println("添加的員工信息爲:");
		System.out.println("編號是:"+emp.getEmpNo());
		System.out.println("名字是:"+emp.getName());
		System.out.println("工資是:"+emp.getSalary());
		
	}
	/*//顯示員工信息
	public void showInfo(String empNo)
	{
		for(Emp emp:al)
		{
			if("empNo".equals(emp.getEmpNo()))
			{
				System.out.println("找到了員工,他的信息是:");
				System.out.println("編號是:"+emp.getEmpNo());
				System.out.println("名字是:"+emp.getName());
				System.out.println("工資是:"+emp.getSalary());
			}
		}
	}*/
	//查詢員工信息
	public void qeuryEmp(String empNo)
	{  for(int i=0;i<al.size();i++)
		{
			for(Emp emp:al)
			{
				if("empNo".equals(emp.getEmpNo()))
				
					System.out.println("查詢的員工信息爲:");
					System.out.println("編號是:"+emp.getEmpNo());
					System.out.println("名字是:"+emp.getName());
					System.out.println("工資是:"+emp.getSalary());
				
			}
		}
	}
	//修改某位員工的工資
	public void updateEmp(String empNo,float newSalary)
	{
		for(Emp emp:al)
		{
			if("empNo".equals(emp.getEmpNo()))
			{
			emp.setSalary(newSalary);
			}
		}
	}
	//刪除某位員工
	public void delEmp(String empNo)
	{  for(int i=0;i<=al.size();i++)
		{
			for(Emp emp:al)
			{
				if("empNo".equals(emp.getEmpNo()))
				{
			//al.remove(i);
			al.remove(emp);
				}
			}
		}
		
	}
}
class Emp{
	private String empNo;
	private String name;
	private float salary;
	public Emp() {
		super();
	}
	public Emp(String empNo, String name, float salary) {
		super();
		this.empNo = empNo;
		this.name = name;
		this.salary = salary;
	}
	public String getEmpNo() {
		return empNo;
	}
	public void setEmpNo(String empNo) {
		this.empNo = empNo;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public float getSalary() {
		return salary;
	}
	public void setSalary(float salary) {
		this.salary = salary;
	}
	
}


畢竟是新手,沒用到反射,在修改完薪水後,不能傳值覆蓋原值,希望有人能加以改進!

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