Java集合ArrayList的应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java集合ArrayList的应用相关的知识,希望对你有一定的参考价值。

/**
 * 
 * @author Administrator
 * 功能:Java集合类ArrayList的使用
 */
package com.test;

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

public class Test2 {

    public static void main(String[] args) throws Exception{
        // TODO Auto-generated method stub
        //演示
//        String a = new String("abc");
//        String b = new String("abc");
//        //==比较的是字符串的地址,equals比较的字符串的内容
//        if(a == b)
//        {
//            //该句不会被输出
//            System.out.println("OK");
//        }
//        if(a.equals(b)) //a.equals(b)返回的是布尔值
//        {
//            //该句会被输出
//            System.out.println("OK!");
//        }
        
        //创建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:删除一个雇员");
            System.out.println("5:退出系统");

            
            String operType = br.readLine();
            
            if(operType.equals("1"))
            {
                System.out.println("请输入编号");
                String empNo = br.readLine();
                System.out.println("请输入名字");
                String name = br.readLine();
                System.out.println("请输入工资");
                float sal = Float.parseFloat(br.readLine());
                
                Emp emp = new Emp(empNo, name, sal);
                em.addEmp(emp);
                System.out.println("添加成功!");

            }
            else if(operType.equals("2"))
            {
                System.out.println("请输入编号");
                String empNo = br.readLine();
                em.showInfo(empNo);
            }
            else if(operType.equals("3"))
            {
                System.out.println("请输入编号");
                String empNo = br.readLine();
                System.out.println("请输入工资");
                float newSal = Float.parseFloat(br.readLine());
                em.updateSal(empNo, newSal);
            }
            else if(operType.equals("4"))
            {
                System.out.println("请输入编号");
                String empNo = br.readLine();
                em.delEmp(empNo);
            }
            else if(operType.equals("5"))
            {
                //退出系统,终止当前正在运行的Java虚拟机
                //参数用作状态码;根据惯例,非 0 的状态码表示异常终止
                //-1时Java虚拟机会做检测工资,0的话是正常退出
                System.exit(0);
                //System.exit(-1);
            }
        }
        
        
        
    }
}

// 雇员管理类
class EmpManage {
    private ArrayList al = null;

    // 构造函数最主要的作用就是初始化成员变量
    public EmpManage() {
        al = new ArrayList();
    }

    // 加入员工
    public void addEmp(Emp emp) {
        al.add(emp);
    }

    // 根据员工号显示该员工的相关信息
    public void showInfo(String empNo) {
        // 遍历整个ArrayList
        for (int i = 0; i < al.size(); i++) {
            // 取出Emp对象
            Emp emp = (Emp) al.get(i);

            // 比较编号
            if (emp.getEmpNo().equals(empNo)) {
                System.out.println("找到该员工,他的信息是");
                System.out.println("编号=" + empNo);
                System.out.println("名字=" + emp.getName());
                System.out.println("工资=" + emp.getSal());
            }
        }
    }

    // 修改工资
    public void updateSal(String empNo, float newSal) {
        for (int i = 0; i < al.size(); i++) {
            Emp emp = (Emp) al.get(i);
            if (emp.getEmpNo().equals(empNo)) {
                // 修改薪水
                emp.setSal(newSal);
            }
        }
    }

    // 删除员工
    public void delEmp(String empNo) {
        for (int i = 0; i < al.size(); i++) {
            Emp emp = (Emp) al.get(i);
            if (emp.getEmpNo().equals(empNo)) {
                // 两种删除方式都可以
                al.remove(i);
                // al.remove(emp);
            }
        }
    }
}

// 雇员类
class Emp {

    // 学号
    private String empNo;
    private String name;
    private float sal;

    // 构造函数
    public Emp(String empNo, String name, float sal) {
        super();
        this.empNo = empNo;
        this.name = name;
        this.sal = sal;
    }

    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 getSal() {
        return sal;
    }

    public void setSal(float sal) {
        this.sal = sal;
    }

}

 

以上是关于Java集合ArrayList的应用的主要内容,如果未能解决你的问题,请参考以下文章

Java集合01----ArrayList的遍历方式及应用

Java集合ArrayList源代码详细解析

在java中怎样求多个arraylist集合的交集?

java问题。集合 HashSet,LinkedHashSet,TreeSet,ArrayLIst,LinkList,Vector这些集合在平时应用中,该如何

Java 集合学习笔记:ArrayList

Java 集合学习笔记:ArrayList