黑马程序员技术交流社区
标题:
ArrayList的学习整理
[打印本页]
作者:
yangkai69
时间:
2015-8-21 15:00
标题:
ArrayList的学习整理
ArrayList是一个装对象的容器,它是对象的集合,它在创建时不需要给定容量。
ArrayList的一些常用操作:
1、泛型
2、增删改查
我用以下这个例子来说明ArrayList的使用。
/**
* 功能:ArrayList集合类的一些总结
* 以做一个公司职员管理系统为例进行说明,此系统主要的功能有:
* 1、添加新的员工
* 2、修改员工工资
* 3、删除员工
* 4、根据编号查询员工信息
* 5、显示所有员工信息
* 6、显示平均工资
*/
package myblog;
import java.io.*;
import java.util.ArrayList;
public class ArrayListSetClass {
public static void main(String []args) throws Exception
{
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:显示所有员工信息");
System.out.println("6:显示平均工资");
System.out.println("7:关闭系统");
String s=br.readLine();
if(s.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());
em.addEmp(empNo, name, sal);
}else if(s.equals("2")){
System.out.println("请输入员工编号");
String empNo=br.readLine();
System.out.println("请输入该员工的新工资");
float sal=Float.parseFloat(br.readLine());
em.changeSal(empNo, sal);
}else if(s.equals("3")){
System.out.println("请输入员工编号");
String empNo=br.readLine();
em.delEmp(empNo);
}else if(s.equals("4")){
System.out.println("请输入员工编号");
String empNo=br.readLine();
em.searchEmp(empNo);
}else if(s.equals("5")){
em.searchAll(em.al);
}else if(s.equals("6")){
em.avgSal(em.al);
}else if(s.equals("7")){
break;
}
}
}
}
//管理员工的类
class EmpManage
{
//创建ArrayList时,后面的尖括号代表泛型,表示ArrayList里的全都是<>里的类型
ArrayList<Emp> al=new ArrayList<Emp>();
//输入编号、姓名、工资,增加一个员工的方法
public void addEmp(String empNo,String name,float sal)
{
Emp emp=new Emp(empNo,name,sal);
al.add(emp);
}
//输入员工编号和新工资,修改员工工资的方法
public void changeSal(String empNo,float sal)
{
for(int i=0;i<al.size();i++)
{
Emp emp=al.get(i);
if(emp.getEmpNo().equals(empNo))
{
emp.setSal(sal);
}
}
}
//输入员工编号,删除员工的方法
public void delEmp(String empNo)
{
for(int i=0;i<al.size();i++)
{
Emp emp=al.get(i);
if(emp.getEmpNo().equals(empNo))
{
al.remove(i);
}
}
}
//根据员工的编号,查询员工的信息的方法
public void searchEmp(String empNo)
{
for(int i=0;i<al.size();i++)
{
Emp emp=al.get(i);
if(emp.getEmpNo().equals(empNo))
{
System.out.println("该员工的信息:");
System.out.println("编号:"+emp.getEmpNo());
System.out.println("姓名:"+emp.getName());
System.out.println("工资:"+emp.getSal());
}
}
}
//查询集合里所有员工的信息
public void searchAll(ArrayList<Emp> al)
{
for(int i=0;i<al.size();i++)
{
Emp emp=al.get(i);
{
System.out.println("编号:"+emp.getEmpNo()+"姓名:"+emp.getName()+"工资:"+emp.getSal());
}
}
}
//显示平均工资
public void avgSal(ArrayList<Emp> al)
{
float allSal=0;
for(int i=0;i<al.size();i++)
{
Emp emp=al.get(i);
{
allSal+=emp.getSal();
}
}
System.out.println("平均工资是:"+allSal/al.size());
}
}
//创建一个职员类
class Emp
{
//创建职员类的私有成员变量 编号、姓名、工资并用get、set方法表示出来
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;
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2