Java中ArrayList详解与练习

本人学生党一枚。Java学习过程,写这个博客纯属当复习,有什么错误的地方请大家指出来在评论里指点指点我。谢谢

ArrayList概念:

ArrayList是升级版的数组,我们都知道数组的缺陷是要在使用之前要把范围定死,换句话说数组不能动态的改变长度。而ArrayList可以做到。
ArrayList 是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。
ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。

常用操作:

定义一个对象:

//定义一个ArrayList对象
		ArrayList al = new ArrayList();

ArrayList范围:

//显示大小
		al.size()

添加:

//将clerk_1 加入到al中;
		al.add(clerk_1);

访问:

//如何访问al中的对象(数据)
		//访问第一个对象
		al.get(0);

删除:

//如何从al中删除一个对象
		al.remove(0);

遍历:

//遍历所有al中的对象
				for(int i=0;i<al.size();i++)
				{	
					Clerk temp1 = (Clerk)al.get(i);
					System.out.println("名字等于="+temp1.getName());
				}

这里只是列举了几个常用的方法。
更多ArrayList的方法和使用请查看官方帮助文档…

ArrayList练习题目:

利用面向对象的思想设计一个员工管理系统。要求属性有:员工号,员工姓名,员工工资。
要求1:可以加入员工。
要求2:可以显示员工相关信息。
要求3:可以显示所有员工信息。
要求4:可以修改员工工资。
要求5:可以删除员工。

代码:

/*
 * 功能:ArrayList类的练习.
 * 员工管理系统
 */
package demo7;

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

import javax.swing.text.AbstractDocument.BranchElement;

public class Demo7_2 {

	public static void main(String[] args) throws Exception {
		
		//创建EmpManage对象
		
		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
		EmpManage empManage = 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:删除一个雇员");
			System.out.println("6:删除一个雇员");
			
			String operType = bufferedReader.readLine();
			if (operType.equals("1")) 
			{
				System.out.println("请输入员工号");
				String empNo=bufferedReader.readLine();
				System.out.println("请输入名字");
				String name = bufferedReader.readLine();
				System.out.println("请输入工资");
				float sal = Float.parseFloat(bufferedReader.readLine());
				
				Emp emp = new Emp(empNo, name, sal);
				empManage.addEmp(emp);
			
			}else if (operType.equals("2")) 
			{
				
				System.out.println("请输入员工号");
				String empNo=bufferedReader.readLine();
				empManage.showInfo(empNo);
				
			}else if (operType.equals("3"))
			{
				
				empManage.showAllEmp();
				
			}else if (operType.equals("4"))
			{
				
				System.out.println("请输入员工号");
				String empNo=bufferedReader.readLine();
				System.out.println("请输入修改的工资");
				float sal = Float.parseFloat(bufferedReader.readLine());
				empManage.updateSal(empNo, sal);
			}else if (operType.equals("5")) 
			{
				System.out.println("请输入员工号");
				String empNo=bufferedReader.readLine();
				empManage.delEmp(empNo);
			}
			else if (operType.equals("6")) 
			{
				System.out.println("退出系统");
				//退出系统
				System.exit(0);
			}
		}

	}

}

//雇员管理类
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 showAllEmp()
	{
		for (int i = 0; i < al.size(); i++) {
			Emp emp1=(Emp)al.get(i);
			System.out.println("员工号"+emp1.getEmpNo()+"    姓名:"+emp1.getName()+"    薪水"+emp1.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);
				System.out.println("修改薪水成功");
			}
		}
	}
	
	//删除某个员工
	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);
				System.out.println("删除成功");
			}
		}
	}
}

//雇员类
class Emp{
	//定义工号
	private String empNo;
	private String name;
	private float 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;
	}
	
	//构造方法
	public Emp(String empNo,String name,float sal)
	{
		this.empNo = empNo;
		this.name = name;
		this.sal = sal;
	}
	
	
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值