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());
}
*/
}
}