Java 集合演示
/**
* @(#)Test.java
*
*Java集合演示
* @author
* @version 1.00 2019/3/27
*/
import java.util.HashMap;
import java.util.Hashtable;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Stack;
import java.util.Vector;
class Stu{
private String stuNo;
private String name;
private float score;
public Stu(String StuNo,String name,float score)
{
this.stuNo=stuNo;
this.name=name;
this.score=score;
}
public String getStuNo(){
return stuNo;
}
public void setStuNo(String stuNo){
this.stuNo=stuNo;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public float getScore(){
return score;
}
public void setScore(float score)
{
this.score=score;
}
}
public class Test {
public static void main(String[] args)
{
LinkedList ll=new LinkedList();
Stu stu1=new Stu("9527S","周星驰",86.5f);
Stu stu2=new Stu("74138N","三八译码器",48.3f);
ll.addFirst(stu1);
ll.addFirst(stu2);
for(int i=0;i<ll.size();i++)
System.out.println(((Stu)ll.get(i)).getName());
Vector v=new Vector();//线程同步,可保存大量数据,ArrayList线程异步
Stu stu3=new Stu("74151","同步计数器",86.5f);
Stu stu4=new Stu("c919","国产大飞机",48.3f);
v.add(stu3);
v.add(stu4);
for(int i=0;i<v.size();i++)
System.out.println(((Stu)v.get(i)).getName());
ArrayList al=new ArrayList();
Stu stu01=new Stu("1313M","鲁班七号",66.2f);
Stu stu02=new Stu("1515B","妲己",69.3f);
// Stu stu03=new Stu("K456","王昭君",33.1f);
al.add(stu01);
al.add(stu02);
al.add(stu02); //可以放一个已经存在的对象
//删除办法
// al.remove(0);
// al.remove(stu02);
for(int i=0;i<al.size();i++)
System.out.println(((Stu)al.get(i)).getName());
Stack stack=new Stack();
Stu stu5=new Stu("A0031","诸葛村夫",86.5f);
Stu stu6=new Stu("0919N","司马老贼",48.3f);
stack.add(stu5);
stack.add(stu6);
for(int i=0;i<stack.size();i++)
System.out.println(((Stu)stack.get(i)).getName());
HashMap hm=new HashMap();//线程异步,效率低
hm.put("s001",stu1);
hm.put("s002",stu2);
hm.put("s002",stu3); //会造成,用后面的覆盖前面的
hm.put("s004",stu4);
hm.put("s005",stu5);
hm.put("s006",stu6);
if(hm.containsKey("s002"))
{
System.out.println("有该员工");
Stu stu=(Stu)hm.get("s002");
System.out.println("名字:"+stu.getName());
}else{
System.out.println("没有该员工");
}
//遍历HashMap所有的Key和Value
Iterator it=hm.keySet().iterator();//迭代器
while(it.hasNext())
{
String key=it.next().toString();
Stu stu=(Stu)hm.get(key);
System.out.println("名字:"+stu.getName());
}//注意:取出顺序是乱序的
Hashtable ht=new Hashtable();//线程同步,保证线程安全,效率低
// ht.put(null,null)//会报错
hm.put(null,null);//不会报错
}
public Test() {
}
}
ArrayList实现员工信息管理系统
**
* @(#)Test.java
*
*ArrayList实现员工信息管理系统
* @author
* @version 1.00 2019/3/28
*/
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Test {
public static void initMenu()
{
System.out.println("**************************");
System.out.println("欢迎使用员工信息管理系统!");
System.out.println("**请选择你要进行的操作****");
System.out.println("** 1.添加员工 **");
System.out.println("** 2.查找员工 **");
System.out.println("** 3.修改员工信息 **");
System.out.println("** 4.删除员工 **");
System.out.println("** 0.退出系统 **");
System.out.println("**************************");
}
public static void main(String[] args)
{
EmpManage em=new EmpManage();
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
while(true)
{
initMenu();
try{
int option=Integer.parseInt(br.readLine());
switch(option)
{
case 1:
System.out.println("请输入员工编号");
String empNo1=br.readLine();
System.out.println("请输入员工姓名");
String name=br.readLine();
System.out.println("请输入员工工资");
float sal=Float.parseFloat(br.readLine());
Emp emp=new Emp(empNo1,name,sal);
em.addEmp(emp);
break;
case 2:
System.out.println("请输入员工编号");
String empNo2=br.readLine();
em.showInfo(empNo2);
break;
case 3:
System.out.println("请输入员工编号");
String empNo3=br.readLine();
System.out.println("请输入员工工资");
float newSal=Float.parseFloat(br.readLine());
em.updateSal(empNo3,newSal);
break;
case 4:
System.out.println("请输入员工编号");
String empNo4=br.readLine();
em.deleteEmp(empNo4);
break;
case 0:
System.exit(0);
}//switch
}catch(IOException e){
e.printStackTrace();
}
}//while
}//main
}//class Test
class EmpManage{
private ArrayList al=null;
public EmpManage()
{
al=new ArrayList();
}
//添加员工
public void addEmp(Emp emp)
{
al.add(emp);
System.out.println("添加成功!");
}
//显示信息
public void showInfo(String empNo)
{
for(int i=0;i<al.size();i++)
if(((Emp)al.get(i)).getEmpNo().equals(empNo))
{
System.out.println("员工编号:"+((Emp)al.get(i)).getEmpNo());
System.out.println("员工姓名:"+((Emp)al.get(i)).getName());
System.out.println("员工工资:"+((Emp)al.get(i)).getSal());
}else {
System.out.println("没有该员工!");
}
}
//修改工资
public void updateSal(String empNo,float newSal)
{
for(int i=0;i<al.size();i++)
if(((Emp)al.get(i)).getEmpNo().equals(empNo))
((Emp)al.get(i)).setSal(newSal);
else System.out.println("没有该员工!");
}
//删除员工
public void deleteEmp(String empNo)
{
for(int i=0;i<al.size();i++)
if(((Emp)al.get(i)).getEmpNo().equals(empNo))
{
al.remove(i);
System.out.println("删除成功!");
}
else System.out.println("没有该员工!");
}
}
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;
}
}//完
为了让这样一个系统具有实用性,增加了数据保存文件data.txt
一下是修改后的addEmp函数
public void addEmp(Emp emp)
{
File f=null;
BufferedWriter output=null;
String empNo=emp.getEmpNo();
String name=emp.getName();
String sal=Float.toString(emp.getSal());
al.add(emp);
try{
f=new File("d:\\data.txt");
if(f.exists()) System.out.println("数据文件不存在");
output=new BufferedWriter(new FileWriter(f,true));
output.write(empNo);
output.write("\r\n");
output.write(name);
output.write("\r\n");
output.write(sal);
output.write("\r\n");
output.flush();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
output.close();
}catch(Exception e){
e.printStackTrace();
}
}
System.out.println("添加成功!");
}
此外还增加了初始化函数initEmp,但仍存在诸多问题,文件的读写还不是很擅长
运行会出问题,之后再修改
public void initEmp()
{
int line=1;
Emp emp=null;
File f=null;
FileReader fr=null;
BufferedReader input=null;
try{
f=new File("d:\\data.txt");
if(f.exists()) System.out.println("数据文件不存在");
fr=new FileReader(f);
input=new BufferedReader(fr);
while(input.readLine()!=null)
{
if(line%3==1)
{
emp=new Emp();
emp.setEmpNo(input.readLine());
}
else if(line%3==2)
emp.setEmpNo(input.readLine());
else if(line%3==0)
emp.setSal(Float.parseFloat(input.readLine()));
al.add(emp);
line++;
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
input.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
总结:一个比较好一点的信息管理系统还需要,有一个GUI,还需要有数据库,