黑马程序员技术交流社区

标题: ArrayList的学习整理 [打印本页]

作者: yangkai69    时间: 2015-8-21 15:00
标题: ArrayList的学习整理
ArrayList是一个装对象的容器,它是对象的集合,它在创建时不需要给定容量。
ArrayList的一些常用操作:
1、泛型
2、增删改查
我用以下这个例子来说明ArrayList的使用。
  1. /**
  2. * 功能:ArrayList集合类的一些总结
  3. * 以做一个公司职员管理系统为例进行说明,此系统主要的功能有:
  4. * 1、添加新的员工
  5. * 2、修改员工工资
  6. * 3、删除员工
  7. * 4、根据编号查询员工信息
  8. * 5、显示所有员工信息
  9. * 6、显示平均工资
  10. */


  11. package myblog;
  12. import java.io.*;
  13. import java.util.ArrayList;

  14. public class ArrayListSetClass  {
  15.        
  16.        
  17.         public static void main(String []args) throws Exception
  18.         {
  19.                
  20.                 EmpManage em=new EmpManage();
  21.                 BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  22.                 while(true)
  23.                 {
  24.                 System.out.println("请选择要操作的选项");
  25.                 System.out.println("1:添加新员工");
  26.                 System.out.println("2:修改员工工资");
  27.                 System.out.println("3:删除员工");
  28.                 System.out.println("4:查询员工信息");
  29.                 System.out.println("5:显示所有员工信息");
  30.                 System.out.println("6:显示平均工资");
  31.                 System.out.println("7:关闭系统");
  32.                
  33.                  String s=br.readLine();
  34.                  
  35.                  if(s.equals("1")){
  36.                          System.out.println("请输入员工编号");
  37.                          String empNo=br.readLine();
  38.                          System.out.println("请输入员工姓名");
  39.                          String name=br.readLine();
  40.                          System.out.println("请输入员工工资");
  41.                          float sal=Float.parseFloat(br.readLine());
  42.                          em.addEmp(empNo, name, sal);
  43.                          
  44.                  }else if(s.equals("2")){
  45.                          System.out.println("请输入员工编号");
  46.                          String empNo=br.readLine();
  47.                          System.out.println("请输入该员工的新工资");
  48.                          float sal=Float.parseFloat(br.readLine());
  49.                          em.changeSal(empNo, sal);
  50.                          
  51.                  }else if(s.equals("3")){
  52.                          System.out.println("请输入员工编号");
  53.                          String empNo=br.readLine();
  54.                          em.delEmp(empNo);
  55.                  }else if(s.equals("4")){
  56.                          System.out.println("请输入员工编号");
  57.                          String empNo=br.readLine();
  58.                          em.searchEmp(empNo);
  59.                  }else if(s.equals("5")){
  60.                          em.searchAll(em.al);
  61.                  }else if(s.equals("6")){
  62.                          em.avgSal(em.al);
  63.                  }else if(s.equals("7")){
  64.                          break;
  65.                  }
  66.                
  67.                
  68.                 }
  69.                
  70.                
  71.                
  72.         }
  73.        
  74.        
  75. }

  76. //管理员工的类
  77. class EmpManage
  78. {
  79.         //创建ArrayList时,后面的尖括号代表泛型,表示ArrayList里的全都是<>里的类型
  80.         ArrayList<Emp> al=new ArrayList<Emp>();
  81.        
  82.         //输入编号、姓名、工资,增加一个员工的方法
  83.         public void addEmp(String empNo,String name,float sal)
  84.         {
  85.                 Emp emp=new Emp(empNo,name,sal);
  86.                 al.add(emp);
  87.         }
  88.        
  89.         //输入员工编号和新工资,修改员工工资的方法
  90.         public void changeSal(String empNo,float sal)
  91.         {
  92.                 for(int i=0;i<al.size();i++)
  93.                 {
  94.                         Emp emp=al.get(i);
  95.                         if(emp.getEmpNo().equals(empNo))
  96.                         {
  97.                                 emp.setSal(sal);
  98.                         }
  99.                 }
  100.         }
  101.        
  102.         //输入员工编号,删除员工的方法
  103.         public void delEmp(String empNo)
  104.         {
  105.                 for(int i=0;i<al.size();i++)
  106.                 {
  107.                         Emp emp=al.get(i);
  108.                         if(emp.getEmpNo().equals(empNo))
  109.                         {
  110.                                 al.remove(i);
  111.                         }
  112.                 }
  113.         }
  114.        
  115.         //根据员工的编号,查询员工的信息的方法
  116.         public void searchEmp(String empNo)
  117.         {
  118.                 for(int i=0;i<al.size();i++)
  119.                 {
  120.                         Emp emp=al.get(i);
  121.                         if(emp.getEmpNo().equals(empNo))
  122.                         {
  123.                                 System.out.println("该员工的信息:");
  124.                                 System.out.println("编号:"+emp.getEmpNo());
  125.                                 System.out.println("姓名:"+emp.getName());
  126.                                 System.out.println("工资:"+emp.getSal());
  127.                         }
  128.                 }
  129.         }
  130.        
  131.         //查询集合里所有员工的信息
  132.         public void searchAll(ArrayList<Emp> al)
  133.         {
  134.                 for(int i=0;i<al.size();i++)
  135.                 {
  136.                         Emp emp=al.get(i);
  137.                         {
  138.                                 System.out.println("编号:"+emp.getEmpNo()+"姓名:"+emp.getName()+"工资:"+emp.getSal());
  139.                         }
  140.                 }
  141.         }
  142.        
  143.         //显示平均工资
  144.         public void avgSal(ArrayList<Emp> al)
  145.         {
  146.                 float allSal=0;
  147.                 for(int i=0;i<al.size();i++)
  148.                 {
  149.                        
  150.                         Emp emp=al.get(i);
  151.                         {
  152.                                 allSal+=emp.getSal();                               
  153.                         }
  154.                 }
  155.                 System.out.println("平均工资是:"+allSal/al.size());
  156.         }
  157.        
  158.        
  159.        
  160.        
  161. }



  162. //创建一个职员类
  163. class Emp
  164. {
  165.         //创建职员类的私有成员变量 编号、姓名、工资并用get、set方法表示出来
  166.         private String empNo;
  167.         private String name;
  168.         private float sal;
  169.         public String getEmpNo() {
  170.                 return empNo;
  171.         }
  172.         public void setEmpNo(String empNo) {
  173.                 this.empNo = empNo;
  174.         }
  175.         public String getName() {
  176.                 return name;
  177.         }
  178.         public void setName(String name) {
  179.                 this.name = name;
  180.         }
  181.         public float getSal() {
  182.                 return sal;
  183.         }
  184.         public void setSal(float sal) {
  185.                 this.sal = sal;
  186.         }


  187.         //构造函数
  188.         public Emp(String empNo,String name,float sal)
  189.         {
  190.                 this.empNo=empNo;
  191.                 this.name=name;
  192.                 this.sal=sal;
  193.         }
  194. }




复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2