通过查找大量有关ArrayList操作的文章,终于将这个小东西写完了。感觉心累。
//import java.util.ArrayList; //import java.util.List; //import java.util.Scanner;// I/O库函数 //import java.util.Comparator; //import java.util.Collections;//集合库,在此程序中的作用是用来对ArrayList排序 //以上库函数可以直接用 import java.util.*; import java.util.*; class Stu{ private int id; //编号 private String name; //姓名 private boolean sex; //性别 private int bornDate; //出生日期 private int edu; //学历 private long phone; //电话 private float salary; //工资 // public void qtu(int id,String name,boolean sex,int bornDate,int edu,long phone,float salary) // { // this.id=id; // this.name=name; // this.sex=sex; // this.bornDate=bornDate; // this.edu=edu; // this.phone=phone; // this.salary=salary; // } public int getid() //返回输入数据的值 { return id; } public void setid(int id) //因为定义的类型为私有,所以需要为数据的输入提供一个供外部访问的接口 { this.id=id; } public String getname() { return name; } public void setname(String name) { this.name=name; } public boolean getsex() { return sex; } public void setsex(boolean sex) { this.sex=sex; } public int getbornDate() { return bornDate; } public void setbornDate(int bornDate) { this.bornDate=bornDate; } public int getedu() { return edu; } public void setedu(int edu) { this.edu=edu; } public long getphone() { return phone; } public void setphone(long phone) { this.phone=phone; } public float getsalary() { return salary; } public void setsalary(float salary) { this.salary=salary; } } class Operate{ List<Stu> list=new ArrayList<Stu>(); Scanner cin=new Scanner(System.in); //输入部分可以先将类型定义为String,再通过list.父类型.parse数据类型()转换为指定类型 public void input() throws Exception//添加工程师信息 { int student_number=1; System.out.println("********* 添加学生信息,停止添加输入0 **********"); while(true) { Stu stu=new Stu(); //这条语句一定要放在循环结构里,否则list中的值不会更新 System.out.println("正在录入第 "+student_number+" 个工程师的信息....\n"); System.out.println("******请输入工程师的编号******"); stu.setid(Integer.parseInt(cin.next())); //这里不能用的输入不能用 cin.nextLine() 原因应该与C语言的gets()后+scanf()差不多 if(stu.getid()==0) {System.out.println("******成功退出输入******\n");break;} System.out.println("******请输入工程师的名字******"); stu.setname(cin.next()); System.out.println("******请输入工程师的性别******"); stu.setsex(Boolean.parseBoolean(cin.next())); System.out.println("******请输入工程师的出生日期******"); stu.setbornDate(Integer.parseInt(cin.next())); System.out.println("******请输入工程师的学历******"); stu.setedu(Integer.parseInt(cin.next())); System.out.println("******请输入工程师的联系电话******"); stu.setphone(Long.parseLong(cin.next())); System.out.println("******请输入工程师的工资******"); stu.setsalary(Float.parseFloat(cin.next())); list.add(stu); // stu.id=cin.nextInt(); // stu.name=cin.nextLine(); // stu.sex=cin.nextBoolean(); // stu.bornDate=cin.nextInt(); // stu.edu=cin.nextInt(); // stu.phone=cin.nextInt(); // stu.salary=cin.nextFloat(); System.out.println("第"+student_number+"个工程师的信息录入成功!\n"); student_number++; } } public void select() //查找并打印出指定工程师信息 { System.out.println("************请输入要查询的工程师编号******"); int num=cin.nextInt(); int number=0; for(int i=0;i<list.size();i++) { if(num==list.get(i).getid()) { System.out.println("**************************************************************************************"); System.out.println(" 编号 姓名 性别 出生日期 学历 电话 工资"); System.out.println(list.get(i).getid()+"\t"+list.get(i).getname()+"\t"+list.get(i).getsex()+"\t"+list.get(i).getbornDate()+"\t"+list.get(i).getedu()+"\t"+list.get(i).getphone()+"\t"+list.get(i).getsalary()); System.out.println("**************************************************************************************"); number++; } } if(number==0) System.out.println("************你要查找的工程师编号不存在************"); } public void delete() //删除指定工程师信息 { System.out.println("******请输入要删除的工程师编号******"); int num=cin.nextInt(); for(int i=0;i<list.size();i++) { if(num==list.get(i).getid()) { System.out.println("成功删除编号为"+list.get(i).getid()+"的工程师"); list.remove(i);//删除下标为i的信息 } } } public void update() //修改指定工程师信息 { int rm=0; int id1; String name1; boolean sex1; int borndate1; int edu1; long phone1; float salary1; System.out.println("******请输入要修改的工程师编号******"); int num=cin.nextInt(); for(int i=0;i<list.size();i++) { if(num==list.get(i).getid()) { rm=1; System.out.println("请输入修改后的编号"); id1=Integer.parseInt(cin.next()); list.get(i).setid(id1);//通过访问函数接口来完成修改功能 System.out.println("请输入修改后的名字"); name1=cin.next(); list.get(i).setname(name1); System.out.println("请输入修改后的性别"); sex1=Boolean.parseBoolean(cin.next()); list.get(i).setsex(sex1); System.out.println("请输入修改后的出生日期"); borndate1=Integer.parseInt(cin.next()); list.get(i).setbornDate(borndate1); System.out.println("请输入修改后的学历"); edu1=Integer.parseInt(cin.next()); list.get(i).setedu(edu1); System.out.println("请输入修改后的电话"); phone1=Long.parseLong(cin.next()); list.get(i).setphone(phone1); System.out.println("请输入修改后的工资"); salary1=Float.parseFloat(cin.next()); list.get(i).setsalary(salary1); System.out.println("********信息修改完成**************"); break; } } if(rm==0) System.out.println("无此编号工程师!"); } public static class idComparator implements Comparator //自定义比较器类 { public int compare(Object o1,Object o2) { Stu s1,s2; s1=(Stu)o1; s2=(Stu)o2; return new Integer(s1.getid()).compareTo(new Integer(s2.getid()));//将s.getid()包装为Integer对象后进行比较 } } public void sort() //排序工程师信息 { Comparator cmp=new idComparator();//创建比较器对象 Collections.sort(list,cmp);//集合排序函数Collections.sort(集合列表,比较器) System.out.println("*******编号排序成功**********"); } public void output() //输出所有工程师信息 { System.out.println("============打印工程师信息==========="); System.out.println("**************************************************************************************"); System.out.println(" 编号\t姓名\t性别\t出生日期\t\t学历\t电话\t\t工资(元)"); System.out.println("**************************************************************************************"); for( Stu u:list) { System.out.println(u.getid()+"\t"+u.getname()+"\t"+u.getsex()+"\t"+u.getbornDate()+"\t\t"+u.getedu()+"\t"+u.getphone()+"\t"+u.getsalary()); } System.out.println("**************************************************************************************"); System.out.println("======================================================================================"); } public void clear() throws Exception //清除所有工程师信息 { System.out.println("确认删除? true/false"); boolean s=cin.nextBoolean(); if(s)list.clear(); if(!s) return ; System.out.println("******成功清除所有工程师信息******"); } } public class Ims{ public static void main(String[] args)throws Exception{ Scanner sc=new Scanner(System.in); Operate pt=new Operate(); System.out.println("==============工程师信息管理系统===============\n"); System.out.println("请选择: 1: 录入工程师信息 2: 查询指定工程师信息 3: 删除指定工程师信息 4: 修改指定工程师资料 5: 对工程师资料排序 6: 输出所有工程师资料 7: 清除所有工程师资料 8: 退出"); while(sc.hasNextInt()) { int n=sc.nextInt(); if(n==8) break; switch(n) { case 1: pt.input();break; case 2: pt.select();break; case 3: pt.delete();break; case 4: pt.update();break; case 5: pt.sort();break; case 6: pt.output();break; case 7: pt.clear();break; } System.out.println("请选择: 1: 录入工程师信息 2: 查询指定工程师信息 3: 删除指定工程师信息 4: 修改指定工程师资料 5: 对工程师资料排序 6: 输出所有工程师资料 7: 清除所有工程师资料 8: 退出"); } System.out.println("欢迎您下次继续使用本信息管理系统!"); } }
此代码仅供初学者参考=.=