1、创建实体类
public class Emp {
private int id; // 工号
private String name;// 姓名
private String sex;// 年龄
private String month; // 生日
// 有参无参构造方法
public Emp() {
super();
// TODO Auto-generated constructor stub
}
public Emp(int id, String name, String sex, String month) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.month = month;
}
// toString方法
@Override
public String toString() {
return "工号:" + id + ", 姓名:" + name + ", 性别:" + sex + ", 出生年月:"
+ month + "";
}
// 创建get和set方法
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 String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getMonth() {
return month;
}
public void setMonth(String month) {
this.month = month;
}
}
2、在main方法中进行实现
public static void main(String[] args) {
// TODO Auto-generated method stub
// 创建ArrayList集合存储数据
ArrayList<Emp> list = new ArrayList<Emp>();
list.add(new Emp(25,"张三","男","1999-2-14"));
list.add(new Emp(20,"王五","男","1999-2-14"));
// 创建Scanner对象 用于接收用户输入
Scanner sc = new Scanner(System.in);
// 员工管理程序介绍
System.out.println("欢迎使用YSD员工管理程序");
System.out.println("0:退出 1:显示所有 2:添加 3:修改 4:删除 5:查询 6:按工号排序输出");
// 声明整数 n 用来接收用户输入的数字
int n ;
// 用于判断用户如果输入0就退出循环
do {
n = sc.nextInt();
// 判断用户输入的数字 来进行操作
switch (n) {
case 0:
System.out.println("退出");
break;
case 1:
System.out.println("显示所有员工");
for (int i = 0; i <list.size(); i++) {
System.out.println(list.get(i));
}
break;
case 2:
System.out.println("添加");
System.out.println("请输入新员工号");
int ygh = sc.nextInt();
System.out.println("请输入新员工姓名");
String xm = sc.next();
System.out.println("请输入新员工性别");
String xb = sc.next();
System.out.println("请输入新员工生日");
String sr = sc.next();
list.add(new Emp(ygh,xm,xb,sr));
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
break;
case 3:
System.out.println("请输入修改的编号");
int d = sc.nextInt();
//根据用户输入的编号d去找list中数据对应的下标
for (int i = 0; i < list.size(); i++) {//获取数组中每条数据
if (list.get(i).getId()==d) {//获取数据中的Emp对象编号
//获取用户要修改的数据
System.out.println("请输入修改后的编号");
int ygh1 = sc.nextInt();
System.out.println("请输入修改后的姓名");
String xm1 = sc.next();
System.out.println("请输入修改后的性别");
String xb1 = sc.next();
System.out.println("请输入修改后的生日");
String sr1 = sc.next();
//i代表的是找到list中对应的员工数据的下标
Emp aEmp = list.get(i);//利用了存储数据的时候值地址的引用
aEmp.setId(ygh1);
aEmp.setName(xm1);
aEmp.setSex(xb1);
aEmp.setMonth(sr1);
System.out.println("修改成功");
break;//代表 已经修改完成 循环结束掉
}else {
System.out.println("木有找到相应的编号");
}
}
break;
case 4:
System.out.println("输入你要删除的编号");
int b =sc.nextInt();
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId()==b) {
list.remove(i);
System.out.println("删除成功");
break;
}
}
break;
case 5:
System.out.println("根据姓名查询");
String c = sc.next();
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getName().equals(c)) {
System.out.println(list.get(i));
}
}
break;
case 6:
System.out.println("根据工号排序");
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.size()-1-i; j++) {
if (list.get(j).getId()>list.get(j+1).getId()) {
Emp m = list.get(j);
list.set(j,list.get(j+1));
list.set(j+1,m);
}
}
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
break;
default:
break;
}
} while (n!=0);
System.out.println("退出成功");
}