当幸福莱敲门

导航

 

一.用的集合有

1.List结构的集合类  属于链表结构

ArrayList 类  动态数组集合,LinkedList类 链表集合,VectorOD 类 向量集合,Stack类 栈集合

2.Map结构的集合类

HashMap 类,Hashtable类

3.Set结构的集合类

HashSet类,TreeSet类

4.Queue结构的集合类

Queue接口

什么时候使用什么集合呢?

1.如果要求线程安全,使用Vector,Hashtable

2,如果不要求线程安全,应使用ArrayList,LinkedList,HashMap

3,如果要求键 值对,则使用HashMap,Hashtable

4.如果数据量在,又要线程安全就用Vector

 1 /**
 2  * JAVA集合类的用法
 3  * 集合就是增删改查
 4  */
 5 package com.test1;
 6 //要用集合首先要引用java.util.*包
 7 import java.util.*;
 8 public class day10 {
 9     public static void main(String []args) {
10         //定义一个Arraylist对象
11         ArrayList a1=new ArrayList();
12         //查看集合大小用size,查看数组大小用length
13         System.out.println(a1.size());
14         System.out.println("----下面是添加数据到Arraylist集合里面------------");
15         //向A1里面加入数据(类型是Object)
16         //实例化一个Shou类
17         Shou shou1=new Shou("小明", 15, 1111);
18         Shou shou2=new Shou("小 红", 25, 2111);
19         Shou shou3=new Shou("小强", 35, 3111);
20         //将shou1放入a1集合中
21         a1.add(shou1);
22         a1.add(shou2);
23         a1.add(shou3);
24         //查看Arraylist集合的大小
25         System.out.println("----下面是查看集合里面的数据------------");
26         System.out.println("arraylist集合的大小是:"+a1.size());
27         //如何查看集合里面的数据
28         //访问Arraylist集合里面的对象
29         Shou temp=(Shou)a1.get(0);
30         System.out.println("访问集合里面第0个数据是:"+temp.getNameString());    
31         //用遍历的方法查询集合里面的数据
32         for (int i = 0; i < a1.size(); i++) {
33             Shou temppShou=(Shou)a1.get(i);
34             //访问集合里面的所有数据
35             System.out.println(temppShou.getNameString()+"的年龄是:"+temppShou.getAage());
36         }
37         
38         System.out.println("-------------下面是删除了arraylist集合第一个数据的结果--------------------");
39         //如何删除集合里面的数据
40         a1.remove(0);
41         //删除之后再看一个集合的大小
42         System.out.println("arraylist集合的大小是:"+a1.size());
43         //再看一下集合里面的数据
44         for (int i = 0; i < a1.size(); i++) {
45             Shou temppShou=(Shou)a1.get(i);
46             //访问集合里面的所有数据
47             System.out.println(temppShou.getNameString()+"的年龄是:"+temppShou.getAage());
48         }
49     }
50 }
51 class Shou{
52     private String nameString;
53     public String getNameString() {
54         return nameString;
55     }
56     public void setNameString(String nameString) {
57         this.nameString = nameString;
58     }
59     public int getAage() {
60         return aage;
61     }
62     public void setAage(int aage) {
63         this.aage = aage;
64     }
65     public int getMmonke() {
66         return mmonke;
67     }
68     public void setMmonke(int mmonke) {
69         this.mmonke = mmonke;
70     }
71     private int aage;
72     private int mmonke;
73     //void表示有返回,构造方法
74     public Shou(String nnamString,int aage,int mmonke) {
75         this.nameString=nnamString;
76         this.aage=aage;
77         this.mmonke=mmonke;
78     }
79 }

利用ArrayList写的一个员工管理

  1 /**
  2  * 简单的员工管理系统
  3  */
  4 package com.test2;
  5 
  6 import java.util.ArrayList; //引入ArrayList集合
  7 import java.util.Scanner;
  8 
  9 public class day11 {
 10     public static void main(String []args) 
 11     {
 12         Scanner br=new Scanner(System.in); //从控制台输入操作类型
 13         //创建员工管理类,就是创建EmpManage
 14         EmpManage em=new EmpManage();
 15         //作出一个简易菜单
 16         while (true) {
 17             System.out.println("请选择你要进行的操作");
 18             System.out.println("1.是添加员工");
 19             System.out.println("2.查找员工信息");
 20             System.out.println("3.修改一个员工");
 21             System.out.println("4.删除一个员工");
 22             System.out.println("5.退出程序"+"\n");
 23             //把从控制台输入的信息传给operType
 24             String operType=br.nextLine();
 25             if (operType.equals("1")) //添加员工
 26             {
 27                 System.out.println("请输入员工编号:");
 28                 String empNo=br.nextLine(); 
 29                 System.out.println("请输入员工名字:");
 30                 String name=br.nextLine();
 31                 System.out.println("请输入员工工资");
 32                 float sal=Float.parseFloat(br.nextLine());
 33                 
 34                 Emp emp=new Emp(empNo, name, sal); //创建员工对象
 35                 
 36                 em.addEmp(emp);
 37             }else if (operType.equals("2")) //查找员工
 38             {
 39                 System.out.println("请输入员工编号:");
 40                 String empNo=br.nextLine(); //把输入的员工编号给变量empNo
 41                 em.showInfo(empNo); //调用显示员工方法
 42             }else if (operType.equals("3")) //修改员工工资
 43             {
 44                 System.out.println("请输入需要修改的员工的编号:/n");
 45                 String empNo=br.nextLine();
 46                 System.out.println("请输入需要修改的工资:/n");
 47                 float newSal=Float.parseFloat(br.nextLine());
 48                 em.update(empNo, newSal);
 49             }else if (operType.equals("4")) //删除员工
 50             {
 51                 System.out.println("请输入需要删除的员工编号");
 52                 String empNo=br.nextLine();
 53                 em.delEmp(empNo);
 54                 
 55             }else if (operType.equals("5")) {
 56                 System.exit(0);
 57                 System.out.println("程序已退出");
 58             }
 59             
 60         }
 61     }
 62 }
 63 
 64 //员工管理类
 65 class EmpManage
 66 {
 67     //定义一个ArrayList集合的变量
 68     private ArrayList al=null;
 69     //构造函数初始化成员变量
 70     public EmpManage() 
 71     {
 72         al=new ArrayList();
 73     }
 74     //当有员工入职的时候,将员工加入ArrayList集合
 75     public void addEmp(Emp emp)  //emp是一个类,把员工类加入到集合
 76     {
 77         al.add(emp);
 78     }
 79     //显示员工的相关信息方法
 80     public void showInfo(String empNo) //查询方法需要给索引,所以给了一个员工编号的参数
 81     {
 82         //遍历ArrayList集合里面的所有员工
 83         for (int i = 0; i < al.size(); i++) //size()表示查询集合ArrayList集合里面的所有数据
 84         {
 85             Emp emp=(Emp)al.get(i); //取出每一个员工的数据并强制转换成emp类型的数据
 86             //然后把取出来的员工和传进来的员工参数进行比较
 87             if (emp.getEmpNo().equals(empNo)) 
 88             {
 89                 System.out.println("找到该员工,他的信息是:");
 90                 System.out.println("编号是:"+emp.getEmpNo());
 91                 System.out.println("名字是:"+emp.getName());
 92                 System.out.println("工资是:"+emp.getSal());
 93             }
 94         }
 95     }
 96     //可以修改员工的工资方法
 97     public void update(String empNo,float newSal)
 98     {
 99         //遍历员工
100         for (int i = 0; i < al.size(); i++) 
101         {
102             Emp emp=(Emp)al.get(i); //把找到的值给emp
103             if (emp.getEmpNo().equals(empNo)) 
104             {
105                 emp.setSal(newSal);//修改员工工资
106             }else
107             {
108                 System.out.println("没有找到员工");
109             }
110         }
111     }
112     //删除某个员工方法
113     public void delEmp(String empNo) 
114     {
115         for (int i = 0; i < al.size(); i++) 
116         {
117             Emp emp=(Emp)al.get(i); //把遍历的每一个值给emp
118             if (emp.getEmpNo().equals(empNo)) //emp拿到遍历的值跟传进来的编号进行对比
119             {
120                 al.remove(i);//删除某位员工
121                 System.out.println(emp.getName()+"员工已被删除");
122             }else
123             {
124                 System.out.println("删除失败");
125             }
126         }
127     }
128 }
129 
130 
131 
132 //先写一个员工类
133 class Emp
134 {
135     //定义成员变量
136     private String empNo; //员工编号
137     private String name;  //员工名字
138     private float sal;    //员工工资
139     //构造函数 初始化成员变量
140         public Emp(String empNo,String name,float sal){
141             this.empNo=empNo;
142             this.name=name;
143             this.sal=sal;
144         }
145     //以下是生成SET和GET方法
146     public String getEmpNo() {
147         return empNo;
148     }
149     public void setEmpNo(String empNo) {
150         this.empNo = empNo;
151     }
152     public String getName() {
153         return name;
154     }
155     public void setName(String name) {
156         this.name = name;
157     }
158     public float getSal() {
159         return sal;
160     }
161     public void setSal(float sal) {
162         this.sal = sal;
163     }
164     
165     
166 }

 

  1 package com.test2;
  2 import java.util.*;
  3 import java.io.*;
  4 
  5 import javax.swing.text.html.HTML;
  6 public class Test02 {
  7     public static void main(String[] args) {
  8 //        Emp emp=new Emp("01", "小红", 1000);
  9 //        Emp emp1=new Emp("02", "小方", 1500);
 10 //        Emp emp2=new Emp("03", "小明", 2000);
 11         EmpManage emg=new EmpManage();
 12         Emp emp=new Emp("001", "小明", 15);
 13         Vector vc=new Vector();
 14         vc.add(emg);
 15         System.out.println(vc.size());
 16         
 17         HashMap hm=new HashMap();
 18         hm.put("001", emp);
 19         //HashMap的遍历方法
 20         Iterator it=hm.keySet().iterator();
 21         //hasNext返回一个boolean值,如果有就取出key值
 22         while (it.hasNext()) {
 23             String key=it.next().toString();
 24             //通过key取出value
 25             Emp emp2=(Emp)hm.get(key);
 26             System.out.println(emp.getName());
 27         }
 28         if (hm.containsKey("001")) {
 29             System.out.println("test");
 30             Emp temp=(Emp)hm.get("001");
 31             System.out.println(temp.getName());
 32         }else {
 33             System.out.println("NO");
 34         }
 35         //Scanner sc=new Scanner(System.in);
 36 //        emg.addEmp(emp);
 37 //        emg.addEmp(emp1);
 38 //        emg.addEmp(emp2);
 39 //        emg.showInfo("01");
 40 //        System.out.println("----------以下是修改过的值------------");
 41 //        emg.updateSal("01", 500);
 42 //        emg.showInfo("01");
 43 //        System.out.println("----------以下是删除员工----------");
 44 //        emg.delEmp("01");
 45 //        emg.showInfo("01");
 46 //        System.out.println("---------以下是所有员工信息-------");
 47 //        emg.show();
 48 //        while (true) {
 49 //            System.out.println("---请选择你的操作----");
 50 //            System.out.println("|1.加入员工                        |");
 51 //            System.out.println("|2.根据编号显示员工        |");
 52 //            System.out.println("|3.根据编号修改员工工资|");
 53 //            System.out.println("|4.显示所有员工                |");
 54 //            System.out.println("|5.退出程序                        |");
 55 //            String inputType=sc.nextLine();
 56 //            if (inputType.equals("1")) 
 57 //            {
 58 //                //String empNo,String name,float sal
 59 //                System.out.println("请输入员工编号");
 60 //                String empNo=sc.nextLine();
 61 //                System.out.println("请输入员工姓名");
 62 //                String name=sc.nextLine();
 63 //                System.out.println("请输入员工工资");
 64 //                float sal=sc.nextFloat();
 65 //                Emp emp=new Emp(empNo, name, sal);
 66 //                emg.addEmp(emp);
 67 //            }else if(inputType.equals("2"))
 68 //            {
 69 //                System.out.println("请输入员工编号");
 70 //                String empNo=sc.nextLine();
 71 //                emg.showInfo(empNo);
 72 //            }else if(inputType.equals("3"))
 73 //            {
 74 //                System.out.println("请输入员工编号");
 75 //                String empNo=sc.nextLine();
 76 //                System.out.println("请输入修改的工资");
 77 //                float newSal=sc.nextFloat();
 78 //                emg.updateSal(empNo, newSal);
 79 //            }else if(inputType.equals("4"))
 80 //            {
 81 //                emg.show();
 82 //            }else if(inputType.equals("5"))
 83 //            {
 84 //                System.out.println("--程序已退出--");
 85 //                System.exit(0);
 86 //            }
 87 //        }
 88         
 89     }
 90 
 91 
 92 }
 93 //雇员管理类
 94 class EmpManage
 95 {
 96     //引用类型的ArrayList
 97     private ArrayList al=null;
 98     //初始化成员变量
 99     public EmpManage(){
100         
101         this.al=new ArrayList();
102     }
103     //成员方法,加入员工
104     public void addEmp(Emp emp)
105     {
106         al.add(emp);
107     }
108     //根据编号显示员工的名字
109     public void showInfo(String empNo)
110     {
111         for (int i = 0; i < al.size(); i++) {
112             Emp temp=(Emp)al.get(i);
113             if (temp.getEmpNo().equals(empNo)) {
114                 System.out.println("员工的编号是:"+temp.getEmpNo());
115                 System.out.println("员工的姓名是:"+temp.getName());
116                 System.out.println("员工的工资是:"+temp.getSal());
117             }
118         }
119     }
120     //根据据员工编号修改工资
121     public void updateSal(String empNo,float newSal)
122     {
123         //遍历ArrayList里面所有数据
124         for (int i = 0; i < al.size(); i++) {
125             //取出集合里面的数据并拿给tempEmp
126             Emp tempEmp=(Emp)al.get(i);
127             //判断tempEmp里面的值跟传进来的empNo编号进行比较,如果是一样的,就修改Sal的值
128             if (tempEmp.getEmpNo().equals(empNo)) {
129                 //修改Sal的值
130                 tempEmp.setSal(newSal);
131                 System.out.println("修改成功");
132             }else {
133                 System.out.println("没有找到这个人");
134             }
135             
136         }
137         
138     }
139     
140     //删除员工
141     public void delEmp(String empNo)
142     {
143         for (int i = 0; i < al.size(); i++) {
144             Emp temp=(Emp)al.get(i);
145             if (temp.getEmpNo().equals(empNo)) {
146                 al.remove(i);
147             }
148             System.out.println("没有找到这个人");
149         }
150     }
151     //显示所有员工
152     public void show()
153     {
154         for (int i = 0; i < al.size(); i++) {
155             Emp temp=(Emp)al.get(i);
156             
157             System.out.println("第"+(i+1)+"个员工的编号是:"+temp.getEmpNo());
158             System.out.println("第"+(i+1)+"个员工的姓名是:"+temp.getName());
159             System.out.println("第"+(i+1)+"个员工的工资是:"+temp.getSal());
160         }
161     }
162 }
163 
164 
165 class Emp
166 {
167     //定义学号
168     private String empNo;
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     private String name;
188     private float sal;
189     public Emp(String empNo,String name,float sal)
190     {
191         this.empNo=empNo;
192         this.name=name;
193         this.sal=sal;
194     }
195 }

 

posted on 2020-08-14 09:18  当幸福莱敲门  阅读(137)  评论(0)    收藏  举报