集合中ArrayList的使用
常用集合類主要分爲Collection和Map兩大分支,常用的有五個,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;
}
}
畢竟是新手,沒用到反射,在修改完薪水後,不能傳值覆蓋原值,希望有人能加以改進!