HashSet員工管理練習
Emp類
public class Emp {
String id;
String name;
double salary;
public Emp() {
}
public Emp(String id, String name, double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
@Override
public String toString() {
return "Emp{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", salary=" + salary +
'}';
}
//Object方法 去重要重寫hashCode()和equals()方法
@Override
public int hashCode() {
return name.hashCode();//name相同
}
@Override
public boolean equals(Object o) { //Object表示set集合中已經存在的對象
Emp emp = (Emp) o;
return id.equals(emp.id);
}
}
Manager類
public class Manager {
HashSet<Emp> hs;
//初始化
{
hs = new HashSet<>();
}
//增加
void addEmp(Emp emp) {
hs.add(emp);
}
//查詢所有
List<Emp> selectAll() {
System.out.println("所有員工資訊如下:");
List<Emp> emps = new ArrayList<>();
for (Emp e : hs) {
emps.add(e);
}
System.out.println(emps);
return emps;
}
//查詢ID
Emp selectById(String id) {
for (Emp e : hs) {
if (e.getId().equals(id)) {
System.out.println("id為" + id + "的員工資訊" + e);
return e;
}
}
return null;
}
//修改指定工号的員工工資
Emp modifyById(String id, double sal) {
Emp e = this.selectById(id);
//判斷員工存在
if (e != null) {
e.setSalary(sal);
}
System.out.println("修改後id為" + id + "的員工資訊" + e);
return e;
}
//删除員工
void deleteById(String id) {
Emp e = this.selectById(id);
if (e != null) {
hs.remove(e);
}
System.out.println("删除後所有員工資訊如下:");
List<Emp> e2 = this.selectAll();
}
}
Test
public class Test {
public static void main(String[] args) {
Manager manager = new Manager();
manager.addEmp(new Emp("5","五",1445.9));
manager.addEmp(new Emp("4","四",2145.9));
manager.addEmp(new Emp("3","三",1845.9));
manager.addEmp(new Emp("2","二",145.9));
manager.addEmp(new Emp("1","一",1345.9));
manager.selectAll();
manager.selectById("3");
manager.modifyById("2",999);
manager.deleteById("1");
}
}