Java 集合(ArrayLsit,LinkedList,Vector,HashMap--HashTable)

1.ArrayList

将Employee[]数组替换成ArrayList<Employee>,请注意下面的变化:

  •   不必指出数组的大小
  • 使用add将任意多的元素添加到数组中
  • 使用size()替代length计算元素的数目
  • 使用a.get(i)替代a[i]访问元素

package day06;

import java.util.*;

public class JiHeDemo01 {

	/**
	 * 
	 */
	public static void main(String[] args) {
		ArrayList a1=new ArrayList();
		System.out.println("a1大小: "+a1.size());
		//向a1中加入数据(类型是Object)
		//创建一个职员
		Clerk clerk1=new Clerk("宋江",50,1000);
		Clerk clerk2=new Clerk("熊非",25,600);
		Clerk clerk3=new Clerk("吴用",45,1600);
		//将clerk1加入到a1中
	    a1.add(clerk1);
	    a1.add(clerk2);
	    a1.add(clerk3);
	    a1.add(clerk1);//可以加入重复的
	    System.out.println("a1大小: "+a1.size());
	    //如何访问a1中对象(数据)
	    //访问第一个对象
	    Clerk temp1=(Clerk)a1.get(1);
	    System.out.println("第er个的名字是: "+temp1.getName());
	    //遍历a1中所有的对象
	    for(int i=0;i<a1.size();i++){
	    	 Clerk temp=(Clerk)a1.get(i);
	 	    System.out.println("第"+(i+1)+"个的名字是: "+temp.getName());
	 	   
	    }
	    //从a1中删除一个对象
	    a1.remove(2);
	    System.out.println("==========删除吴用=============");
	    //遍历a1中所有的对象
	    for(int i=0;i<a1.size();i++){
	    	 Clerk temp=(Clerk)a1.get(i);
	 	    System.out.println("第"+(i+1)+"个的名字是: "+temp.getName());
	 	   
	    }
	}

}
class Clerk{
	
	private String name;
	private int age;
	private float sal;
	public Clerk(String name, int age, float sal) {
		this.name=name;
		this.age=age;
		this.sal=sal;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public float getSal() {
		return sal;
	}
	public void setSal(float sal) {
		this.sal = sal;
	}
}

2. Demo

package day06;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
//ArrayList
public class Demo7_2 {
	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:退出系统");
			String operType=br.readLine();
			if(operType.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());
				Emp emp=new Emp(empNo,name,sal);
				em.addEmp(emp);
				
			}else if(operType.equals("2")){
				System.out.println("请输入编号:");
				String empNo=br.readLine();
				em.showInfo(empNo);
				
			}else if(operType.equals("3")){
			//	em.updateSal(empNo, newSal);
			}else if(operType.equals("4")){
				//em.delEmp(empNo);
			}else if(operType.equals("5")){
				//break;
				System.exit(0);//退出系统,非0表示异常终止
			}
		}

	}
	
}
//雇员管理类
class EmpManage{
	private ArrayList a1=null;
	public EmpManage(){
		a1=new ArrayList();
	}
	//加入员工
	public void addEmp(Emp emp){
		a1.add(emp);
	}
	//显示员工的相关信息
	public void showInfo(String empNo){
		//遍历a1中所有的对象
	    for(int i=0;i<a1.size();i++){
	    	Emp temp=(Emp)a1.get(i);//取出Emp对象
	    	if(temp.getEmpNo().equals(empNo)){
	 	       System.out.println("第"+(empNo)+"个的名字是: "+temp.getName());
	 	       break;
	    	}
	    }	
	}
	//修改工资
	public void updateSal(String empNo,float newSal){
		 for(int i=0;i<a1.size();i++){
		    	Emp temp=(Emp)a1.get(i);//取出Emp对象
		    	if(temp.getEmpNo().equals(empNo)){
		 	       temp.setSal(newSal);
		 	       break;
		    	}
		    }	
		
	}

	//删除某个员工
	public void delEmp(String empNo){
		 for(int i=0;i<a1.size();i++){
		    	Emp temp=(Emp)a1.get(i);//取出Emp对象
		    	if(temp.getEmpNo().equals(empNo)){
		    		a1.remove(i);//等价于a1.remove(temp);
		 	       break;
		    	}
		    }	
	}
}
//雇员类
class Emp{
	private String empNo;//学号
	private String name;
	private float sal;
	public Emp(String empNo,String name,float sal){
		this.empNo=empNo;
		this.name=name;
		this.sal=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;
	}
	
}

3. LinkedList,Vector,HashMap--HashTable

package day06;

import java.util.HashMap;
import java.util.Iterator;

public class Demo7_3LinkedList {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		/*
		LinkedList l1=new LinkedList();
		Emp emp1=new Emp("001","熊非",12.3f);
		Emp emp2=new Emp("002","熊非2",12.3f);
		l1.addFirst(emp1);//addLast()
		l1.addFirst(emp2);
		for(int i=0;i<l1.size();i++){
			System.out.println(((Emp)l1.get(i)).getName());
		}
		//l1.re
*/	
		/*
		Vector vv=new Vector();
		Emp emp1=new Emp("001","熊非",12.3f);
		Emp emp2=new Emp("002","熊非2",12.3f);
		vv.add(emp1);
		for(int i=0;i<vv.size();i++){
			System.out.println(((Emp)vv.get(i)).getName());
		}*/
		
		/*
		Stack stack=new Stack();
		//stack.
*/		
	/*
		//创建一个HashMap对象
		HashMap hm=new HashMap();
		Emp emp1=new Emp("001","熊非",12.3f);
		Emp emp2=new Emp("002","熊非2",12.3f);
		Emp emp3=new Emp("003","熊非3",12.3f);
		//讲emp放入到hm
		hm.put("001", emp1);
		hm.put("002", emp2);
		hm.put("002", emp3);//替换,键不允许重复
		//
		
		//查找编号“002”
		if(hm.containsKey("002")){
			System.out.println("有该员工");
			//取出
			Emp emp=(Emp)hm.get("002");
			System.out.println("该员工名字: "+emp.getName());
		}else{
			System.out.println("没有该员工");
		}
		//遍历HashMap
		Iterator it=hm.keySet().iterator();
		while(it.hasNext()){
			String key=it.next().toString();
			Emp emp=(Emp)hm.get(key);
			System.out.println("该员工名字: "+emp.getName());
			
		}
		*/
		
		
	}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值