一.用的集合有
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 }
浙公网安备 33010602011771号